vue命名视图问题
问题描述
请问一个组件内部引用了命名视图,在index.js中定义了这个命名视图的router,为什么命名视图显示不出来呢?
浏览器访问的是http://localhost:8080/#/test
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import test from '@/components/test1'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/test',
name: 'test',
components:{
default:test,
hello:HelloWorld
}
}
]
})
test1.vue
<template>
<div>
123
<router-view name="hello"></router-view>
</div>
</template>
<script>
</script>
<style>
</style>
你期待的结果是什么?实际看到的错误信息又是什么?
期待的结果是页面显示123和HelloWorld.vue文件的内容
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在test1里写的
router-view
展示的是test1的子路由,你并没有给test1配置children
你配置的是在
/test
这个路由下有两个组件test
和HelloWorld
,他俩要一起展示,应该写一起你可以这么写尝试一下,梳理一下关系
App.vue
router/index.js
test1.vue
testChild.vue
这样在
/
根路由就显示HelloWorld
组件,在/test
路由下显示test
和HelloWorld
组件(他俩是兄弟),在/test/testChild
路由下testChild
会在test
里(他俩是父子)进入到你所说的路径首先匹配的是根路径,显示的将会是HelloWorld.vue
组件中的内容,可以贴一下该组件中有没有提供对应的路由出口。发现上面不是嵌套路由,那么按照需求要显示的话,需要在根模板中提供路由出口。
你跟我犯了同样的错误,都为此折腾好久,最后我终于知道原因了
必须写在app.vue里面