动态组件(Component)
1. 直接切换原生标签和组件定义
这里显式导入并使用 <Component>,is 可以在字符串标签名和函数组件之间来回切换。
当前 is: article
验证点:native element、直接组件定义、children 透传。
说明:切到 SalesCard 时,tone 也会跟着透传给目标组件。
2. 运行时注册字符串组件名
下面这个小区域直接在当前页面里使用导出的 <Component>,并通过 useApp().component('RegisteredMetric', RegisteredMetric) 把字符串名注册到当前 runtime。
运行时注册
CardView
通过 useApp().component('RegisteredMetric', RegisteredMetric) 注册后,字符串名会被解析成组件定义
children 一样会透传
这里不再额外挂一个子应用,只把字符串组件名注册到当前 runtime,再直接渲染 <Component>。
因为已经注册了字符串名,所以 Component 会先查注册表,再决定最终渲染哪个组件。
这也顺带验证了字符串名路径下的 children 透传。
注意:如果 is 最终解析成原生 input、select、textarea 之类的节点,写在 <Component> 上的 v-model / r-model 不能像静态原生标签那样在编译期展开,应该在最终原生节点处处理。