主要操作技能
嵌套路由 就是 (路由里面嵌套他的子路由)
子路由关键属性children
1)配置路由
{ path: '/user', component: Users, children: [{ //父子组件配置,注意不能写/ path: 'useradd', component: UserAdd }, { path: 'userlist', component: UserList }, ] }
2)父路由里面配置子路由显示
<router-view></router-view>最顶层的出口,渲染最高级路由匹配到的组件
<div class="right"> <!--右边--> <!--内容区域--> <!-- 路由出口 --> <!-- 路由匹配到的组件将渲染在这里 --> <router-view></router-view> </div>
模拟: http://element-cn.eleme.io/#/zh-CN/component/installation
说明: 单击“组件”,左边是导航单击,右边是显示的内容
编写代码:
User.vue 用户中心
<template> <div id="users"> <h2>{{msg}}</h2><br /> <div class="user"> <div class="left"> <!--左边--> <ul> <li> <router-link to="/user/useradd">添加用户</router-link> </li> <li> <router-link to="/user/userlist">用户列表</router-link> </li> </ul> </div> <div class="right"> <!--右边--> <!--内容区域--> <!-- 路由出口 --> <!-- 路由匹配到的组件将渲染在这里 --> <router-view></router-view> </div> </div> </div> </template> <script> export default { data() { return { msg: '我是用户组件' } } } </script> <style lang="scss" scoped> .user { display: flex; .left { width: 200px; min-height: 400px; border-right: 10px solid #eee; } .right { flex: 1; } li{ line-height: 2; } } </style>
UserAdd.vue 与UserList.vue 子组件
<template> <div id="usersAdd"> <h3> add user data!</h3> </div> </template>
main.js
import Users from './components/Users.vue' //引入组件 import UserAdd from './components/user/UserAdd.vue' //引入子组件 import UserList from './components/user/UserList.vue' //引子组件 //2.配置路由 const routes = [{ path: '/home', component: Home }, { path: '/news', name: 'news', component: News }, { path: '/user', component: Users, children: [{ //父子组件配置,注意不能写/ path: 'useradd', component: UserAdd }, { path: 'userlist', component: UserList }, ] },
效果:
用户中心
单击用户,显示导航
左边导航,右边显示
单击用户列表,右边显示列表
直接单击用户默认显示添加用户