-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: improve api parser and json schema for vue #2051
Merged
Merged
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
92df99f
feat: add functional component/generic component support
jeffwcx 2eefc60
feat: add more typedoc/jsdoc tags
jeffwcx 233b85f
fix: expose outside props
jeffwcx ebba3c2
feat: add externalSymbolLinkMap support
jeffwcx 68497bb
fix: readme
jeffwcx 557ec71
fix: tests run on windows
jeffwcx 13e4cb9
feat: add source reference for interface, type alias, type params
jeffwcx dd56e87
Merge branch 'feature/2.3.0' into feature/vue-meta-enhance
jeffwcx 05336ab
fix: vue demo
jeffwcx 768ce2b
fix: dynamic git revision
jeffwcx 1262221
fix: tests on windows
jeffwcx 4037814
refactor: remove version
jeffwcx 6e44cde
feat: use dumi built-in function to generate source links
jeffwcx File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
import { | ||
SetupContext, | ||
defineComponent, | ||
onMounted, | ||
ref, | ||
shallowRef, | ||
type SlotsType, | ||
} from 'vue'; | ||
|
||
export type BaseItem = { id: string | number; text: string }; | ||
|
||
export interface ListProps<Item extends BaseItem> { | ||
/** | ||
* data source | ||
*/ | ||
source: () => Promise<Array<Item>> | Array<Item>; | ||
/** | ||
* trigger when data have been loaded | ||
* @deprecated | ||
*/ | ||
onLoaded?: (data: Array<Item>) => void; | ||
} | ||
|
||
export interface ListSlotsType<Item extends BaseItem> { | ||
item?: { item: Item }; | ||
} | ||
|
||
/** | ||
* @component | ||
* Generic components must use `@component`, because defineComponent returns just a plain function | ||
*/ | ||
export const List = defineComponent(function <Item extends BaseItem = BaseItem>( | ||
{ source, onLoaded }: ListProps<Item>, | ||
{ slots, expose }: SetupContext<{}, SlotsType<ListSlotsType<Item>>>, | ||
) { | ||
const list = shallowRef<Array<Item>>([]); | ||
const loading = ref(false); | ||
|
||
async function load() { | ||
loading.value = true; | ||
const data = await source(); | ||
list.value = data; | ||
loading.value = false; | ||
onLoaded?.(data); | ||
} | ||
|
||
expose({ | ||
// 遗憾的是这种函数定义方式,解析器并不能抽取imperative数据 | ||
load, | ||
}); | ||
|
||
onMounted(async () => { | ||
load(); | ||
}); | ||
return () => ( | ||
<> | ||
{loading.value ? ( | ||
'loading...' | ||
) : ( | ||
<ul> | ||
{list.value.map((item) => ( | ||
<li key={item.id}> | ||
{slots.item ? slots.item({ item }) : item.text} | ||
</li> | ||
))} | ||
</ul> | ||
)} | ||
</> | ||
); | ||
}); |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个存 assets.json 会比较冗余,在运行时再拼 repository 信息,类似:
dumi/src/client/theme-default/slots/ContentFooter/index.tsx
Lines 72 to 75 in 1928eb9
siteDataContext 里可能得记一下 git tree hash