提交 77f65560 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

feat(render-function): resolveComponent

上级 aaa22c66
......@@ -752,6 +752,18 @@
"navigationBarTitleText": "isVNode 组合式 API"
}
},
{
"path": "pages/render-function/resolveComponent/resolveComponent-options",
"style": {
"navigationBarTitleText": "resolveComponent 选项式 API"
}
},
{
"path": "pages/render-function/resolveComponent/resolveComponent-composition",
"style": {
"navigationBarTitleText": "resolveComponent 组合式 API"
}
},
{
"path": "pages/examples/unrecognized-component/unrecognized-component",
"style": {
......
......@@ -1025,6 +1025,22 @@ export default {
url: 'isVNode-composition'
},
]
},
{
id: 'resolveComponent',
name: 'resolveComponent',
children: [
{
id: 'resolveComponent-options',
name: 'resolveComponent 选项式 API',
url: 'resolveComponent-options'
},
{
id: 'resolveComponent-composition',
name: 'resolveComponent 组合式 API',
url: 'resolveComponent-composition'
},
]
}
] as Page[]
},
......
......@@ -2,8 +2,8 @@ const OPTIONS_PAGE_PATH = '/pages/render-function/cloneVNode/cloneVNode-options'
const COMPOSITION_PAGE_PATH = '/pages/render-function/cloneVNode/cloneVNode-composition'
describe('cloneVNode', () => {
if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios')) {
// TODO: ios options API 合并属性无效, composition API 页面空白
if (process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios')) {
// TODO: ios options API 合并属性无效, composition API 页面空白(defineOptions + render)
it("IOS platform not support", async () => {
expect(1).toBe(1);
});
......@@ -12,7 +12,7 @@ describe('cloneVNode', () => {
let page = null
const test = async (pagePath) => {
page = await program.reLaunch(pagePath)
page = await program.reLaunch(pagePath)
// 因为 web 端无法获取, 未使用 waitFor view
await page.waitFor(1000)
......
<script setup lang="uts">
import { resolveComponent } from 'vue'
defineOptions({
render() : VNode {
const CompForAppComponent = resolveComponent('CompForAppComponent')
return h(CompForAppComponent)
}
})
</script>
<script lang="uts">
import { resolveComponent } from 'vue'
export default {
setup() {
const CompForAppComponent = resolveComponent('CompForAppComponent')
return ():VNode => {
return h(CompForAppComponent)
}
}
}
</script>
const OPTIONS_PAGE_PATH = '/pages/render-function/resolveComponent/resolveComponent-options'
const COMPOSITION_PAGE_PATH = '/pages/render-function/resolveComponent/resolveComponent-composition'
describe('resolveComponent', () => {
let page = null
const test = async (pagePath) => {
page = await program.reLaunch(pagePath)
// 因为 web 端无法获取, 未使用 waitFor view
await page.waitFor(1000)
const image = await program.screenshot();
expect(image).toSaveImageSnapshot();
}
it('resolveComponent options API', async () => {
await test(OPTIONS_PAGE_PATH)
})
it('resolveComponent composition API', async () => {
await test(COMPOSITION_PAGE_PATH)
})
})
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册