🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # VUE 的路由嵌套 ~~~ 1.嵌套路由当多个路由的组件都有相同的内容,可以将这些相同内容提取到公共的组件当中 2.嵌套的时候在路由对象中增加children对象,负责嵌套路由创建的路由对象 children属性实现 3.当然'childern'下路由需要被渲染的<router-view> 是要写在起对应的上级视图组件中,例如下面案例 'children' 中的视图组件要被渲染需要在'account'组件中的对应<router-view> 才能展示 4.以下面的案例为例整渲染过程 '先加载外层组件 在加载内层组件(childern)'当然路由过程也是如此 '为内外层合并后的整体作为路由地址' ~~~ >[danger] ##### 案例 ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="./lib/vue-2.4.0.js"></script> <script src="./lib/vue-router-3.0.1.js"></script> </head> <body> <div id="app"> <router-link to="/account">Account</router-link> <router-view></router-view> </div> <template id="tmpl"> <div> <h1>这是 Account 组件</h1> <router-link to="/account/login">登录</router-link> <router-link to="/account/register">注册</router-link> <router-view></router-view> </div> </template> <script> // 组件的模板对象 var account = { template: '#tmpl' } var login = { template: '<h3>登录</h3>' } var register = { template: '<h3>注册</h3>' } var router = new VueRouter({ routes: [ { path: '/account', component: account, // 使用 children 属性,实现子路由,同时,子路由的 path 前面,不要带 / ,否则永远以根路径开始请求,这样不方便我们用户去理解URL地址 children: [ { path: 'login', component: login }, { path: 'register', component: register } ] } // { path: '/account/login', component: login }, // { path: '/account/register', component: register } ] }) // 创建 Vue 实例,得到 ViewModel var vm = new Vue({ el: '#app', data: {}, methods: {}, router }); </script> </body> </html> ~~~