Vue Router嵌套路由
1 嵌套路由用法
1.1 嵌套路由分析
- 点击父级路由链接显示模板内容
- 模板内容中又有子级路由链接
- 点击子级路由链接显示子级模板内容
1.2 父路由组件模板
| <p> |
| <router-link to="/user">User</router-link> |
| <router-link to="/register">Register</router-link> |
| </p> |
| <div> |
| |
| <router-view></router-view> |
| </div> |
1.3 子级路由模板
| const Register = { |
| template: `<div> |
| <h1>Register 组件</h1> |
| <hr/> |
| <router-link to="/register/tab1">Tab1</router-link> |
| <router-link to="/register/tab2">Tab2</router-link> |
| |
| <router-view/> |
| </div>` |
| } |
1.4 嵌套路由配置
| const router = new VueRouter({ |
| routes: [ |
| { path: '/user', component: User }, |
| { |
| path: '/register', |
| component: Register, |
| |
| children: [ |
| { path: '/register/tab1', component: Tab1 }, |
| { path: '/register/tab2', component: Tab2 } |
| ] |
| } |
| ] |
| }) |
| <!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.5.22.js"></script> |
| <script src="./lib/vue-router_3.0.2.js"></script> |
| </head> |
| <body> |
| |
| <div id="app"> |
| <router-link to="/user">User</router-link> |
| <router-link to="/register">Register</router-link> |
| |
| |
| <router-view></router-view> |
| </div> |
| |
| <script> |
| const User = { |
| template: '<h1>User 组件</h1>' |
| } |
| |
| const Register = { |
| template: `<div> |
| <h1>Register 组件</h1> |
| <hr/> |
| |
| |
| <router-link to="/register/tab1">tab1</router-link> |
| <router-link to="/register/tab2">tab2</router-link> |
| |
| |
| <router-view /> |
| <div>` |
| } |
| |
| const Tab1 = { |
| template: '<h3>tab1 子组件</h3>' |
| } |
| |
| const Tab2 = { |
| template: '<h3>tab2 子组件</h3>' |
| } |
| |
| // 创建路由实例对象 |
| const router = new VueRouter({ |
| // 所有的路由规则 |
| routes: [ |
| { path: '/', redirect: '/user'}, |
| { path: '/user', component: User }, |
| // children 数组表示子路由规则 |
| { path: '/register', component: Register, children: [ |
| { path: '/register/tab1', component: Tab1 }, |
| { path: '/register/tab2', component: Tab2 } |
| ] } |
| ] |
| }) |
| |
| // 创建 vm 实例对象 |
| const vm = new Vue({ |
| // 指定控制的区域 |
| el: '#app', |
| data: {}, |
| // 挂载路由实例对象 |
| // router: router |
| router |
| }) |
| </script> |
| </body> |
| </html> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2018-04-19 反射:获取Class对象的三种方式