Spe*_*059 8 vue.js vue-router vuejs3 vue-router4
在 vuejs 2 中,我可以通过返回渲染 html 标签直接在路由器中渲染。我试图在 vue3 中使用 vue-router 4 做同样的事情,但它似乎不起作用:
{
path: 'posts',
redirect: '/posts/all',
name: 'posts',
meta: {'breadcrumb': 'Posts'},
component: {
render() {
return h('router-view');
}
},
children: [ //Lots of sub routes here that I could load off the anonymous router-view]
}
Run Code Online (Sandbox Code Playgroud)
知道如何让组件渲染该路由器视图并允许我使用我的子路由吗?我宁愿不加载单个组件来容纳“”。这在 vue-router 3 中运行得很好,不知道 4 有什么问题。我还从“vue”导入 {h}。
来自 Vue 3 渲染函数文档:
在 3.x 中,由于 VNode 是上下文无关的,我们不能再使用字符串 ID 来隐式查找已注册的组件。相反,我们需要使用导入的
resolveComponent方法:
您仍然可以这样做,h('div')因为它不是组件,但对于组件,您必须使用resolveComponent:
import { h, resolveComponent } from Vue; // import `resolveComponent` too
component: {
render() {
return h(resolveComponent('router-view'))
}
},
Run Code Online (Sandbox Code Playgroud)
或者,如果您想使用运行时编译器,您可以使用该template选项(不推荐,因为编译器会增加应用程序大小):
component: {
template: `<router-view></router-view>`
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7563 次 |
| 最近记录: |