命名视图
页面存在多个视图容器怎么办?如何将每个组件显示在正确的容器里?
import Vue from 'vue';
import VueRouter from 'vue-router';
// inject Vue Router to Vue
Vue.use(VueRouter);
// components
const Foo = { template: '<div>Foo</div>' };
const Bar = { template: '<div>Bar</div>' };
const Asd = { template: '<div>Asd</div>' };
// Vue Router configuration
const routes = [
{
name: 'user',
path: '/user',
// 注意,此处是 components,不是 component,末尾的 's' 需要注意
components: {
default: Foo, // <router-view> 没有使用 name 指定组件时就显示 default 指定的组件
a: Bar,
b: Asd,
},
},
];
// Vue Router instance
const router = new VueRouter({
routes,
});
// Vue instance
const app = new Vue({
router,
template: `
<div>
<!-- 该试图容器没有 name 属性,则默认显示 default 指定的组件 Foo -->
<router-view class="view first"></router-view>
<!-- 该试图容器 name 属性指向 a,则显示 components 下 a 指定的组件 Bar -->
<router-view class="view second" name="a"></router-view>
<!-- 该试图容器 name 属性指向 b,则显示 components 下 b 指定的组件 Asd -->
<router-view class="view third" name="b"></router-view>
</div>
`,
});嵌套命名视图
路由导航至 /settings/emails
/settings/emails路由导航至 /settings/profile
/settings/profileLast updated