zoukankan      html  css  js  c++  java
  • 13.Vue路由嵌套

    1.什么是路由嵌套

      嵌套路由又称子路由,在实际应用中,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件,例如:

    /user/foo/profile                     /user/foo/posts
    +------------------+                  +-----------------+
    | User             |                  | User            |
    | +--------------+ |                  | +-------------+ |
    | | Profile      | |  +------------>  | | Posts       | |
    | |              | |                  | |             | |
    | +--------------+ |                  | +-------------+ |
    +------------------+                  +-----------------+

    2.使用

    1.在views中创建user目录,user目录下创建用户信息组件Profile.vue

     1 <template>
     2     <div>个人信息</div>
     3 </template>
     4 
     5 <script>
     6     export default {
     7         name: "UserProfile"
     8     }
     9 </script>
    10 
    11 <style scoped>
    12 
    13 </style>

    2.在user目录下创建用户列表视图组件List.vue

     1 <template>
     2     <div>用户列表</div>
     3 </template>
     4 
     5 <script>
     6     export default {
     7         name: "UserList"
     8     }
     9 </script>
    10 
    11 <style scoped>
    12 
    13 </style>

    3.修改router目录下的index.js路由配置管理文件

    说明:主要在路由配置中增加了 children 数组配置,用于在该组件下设置嵌套路由

     1 import Vue from 'vue'
     2 import Router from 'vue-router'
     3 
     4 import Login from "../views/Login"
     5 import Main from '../views/Main'
     6 
     7 
     8 import UserProfile from "../views/user/Profile"
     9 import UserList from '../views/user/List'
    10 
    11 Vue.use(Router);
    12 
    13 export default new Router({
    14   routes: [
    15     {
    16       // 登录页
    17       path: '/login',
    18       name: 'Login',
    19       component: Login
    20     },
    21     {
    22       // 首页
    23       path: '/main',
    24       name: 'Main',
    25       component: Main,
    26       // 配置嵌套路由
    27       children: [
    28         {
    29           path: '/user/profile',
    30           component: UserProfile
    31         },
    32         {
    33           path: '/user/list',
    34           component: UserList
    35         }
    36       ]
    37     }
    38   ]
    39 });

    4.修改首页视图Main.vue

    说明:

      在 <el-main> 元素中配置了 <router-view /> 用于展示嵌套路由,主要使用 <router-link to="/user/profile">个人信息</router-link> 展示嵌套路由内容

     1 <template>
     2   <div>
     3     <el-container>
     4       <el-aside width="200px">
     5         <el-menu :default-openeds="['1']">
     6 
     7           <el-submenu index="1">
     8             <template slot="title"><i class="el-icon-caret-right"></i>用户管理</template>
     9             <el-menu-item-group>
    10               <el-menu-item index="1-1">
    11                 <router-link to="/user/profile">个人信息</router-link>
    12               </el-menu-item>
    13               <el-menu-item index="1-2">
    14                 <router-link to="/user/list">用户列表</router-link>
    15               </el-menu-item>
    16             </el-menu-item-group>
    17           </el-submenu>
    18 
    19           <el-submenu index="2">
    20             <template slot="title"><i class="el-icon-caret-right"></i>内容管理</template>
    21             <el-menu-item-group>
    22               <el-menu-item index="2-1">分类管理</el-menu-item>
    23               <el-menu-item index="2-2">内容列表</el-menu-item>
    24             </el-menu-item-group>
    25           </el-submenu>
    26 
    27         </el-menu>
    28       </el-aside>
    29 
    30       <el-container>
    31         <el-header style="text-align: right; font-size: 12px">
    32           <el-dropdown>
    33             <i class="el-icon-setting" style="margin-right: 15px"></i>
    34             <el-dropdown-menu slot="dropdown">
    35               <el-dropdown-item>个人信息</el-dropdown-item>
    36               <el-dropdown-item>退出登录</el-dropdown-item>
    37             </el-dropdown-menu>
    38           </el-dropdown>
    39         </el-header>
    40 
    41         <el-main>
    42           <router-view />
    43         </el-main>
    44       </el-container>
    45     </el-container>
    46   </div>
    47 </template>
    48 
    49 <script>
    50   export default {
    51     name: "Main"
    52   }
    53 </script>
    54 
    55 <style scoped lang="scss">
    56   .el-header {
    57     background-color: #B3C0D1;
    58     color: #333;
    59     line-height: 60px;
    60   }
    61 
    62   .el-aside {
    63     color: #333;
    64   }
    65 </style>

  • 相关阅读:
    JS中Text节点总结
    JS中Document节点总结
    HTML5 Geolocation位置信息定位总结
    HTML5form表单的相关知识总结
    HTML5文档的各个组成部分分类
    JS中Node节点总结
    vue.js指令总结
    javascript string对象方法总结
    php 接口文档自动生产方式
    python使用
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12083235.html
Copyright © 2011-2022 走看看