视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue路由嵌套的SPA实现步骤
2020-11-27 22:26:14 责编:小OO
文档

本文为大家分享了路由嵌套的SPA实现的步骤:

A(/a)组件需要嵌套B组件(/b)和C组件(/c)

①准备嵌套其它组价的父组件 指定一个容器

在A组件指定一个容器
<router-view></router-ivew>

②在A组件的路由配置对象中指定children属性

{
path:'/a',
component:A,
children:[
{path:'/b',component:B},
{path:'/c',component:C},
]
}

补充:

//数字如果超出记录的次数,是不行的。
this.$router.go(num);
如果num是正数,向前进
如果num是负数,向后退

代码

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>路由嵌套</title>
 <script src="js/vue.js"></script>
 <script src="js/vue-router.js"></script>
 </head>
 <body>
 <div id="container">
 <p>{{msg}}</p>
 <router-view></router-view>
 </div>
 <script>
//登录组件
 var myLogin = Vue.component("login",{
 template:`
 <div>
 <h1>登录组件</h1>
 <router-link to="/mail">登录</router-link>
 </div>
 `
 })
// 邮箱页面
 var myMail = Vue.component("mail",{
// 定义一个返回的方法
 methods:{
 goBack:function(){
 this.$router.go(-1);
 }
 },
 template:`
 <div>
 <h1>邮箱主页面</h1>
 <ul>
 <li>
 <router-link to="/inbox">收件箱</router-link>
 </li>
 <li>
 <router-link to="/outbox">发件箱</router-link>
 </li>
 </ul>
// 点击按钮返回前面的页面
 <button @click="goBack">返回</button>
 <router-view></router-view>
 </div>
 `
// 指定一个容器,加载收件箱或收件箱的列表
 })
// 收件箱组件
 var myInBox = Vue.component("inbox-component",{
 template:`
 <div>
 <h4>收件箱</h4>
 <ul>
 <li>未读邮件1</li>
 <li>未读邮件2</li>
 <li>未读邮件3</li>
 </ul>
 </div>
 `
 })
// 发件箱组件
 var myOutBox = Vue.component("outbox-component",{
 template:`
 <div>
 <h4>发件箱</h4>
 <ul>
 <li>已发送邮件1</li>
 <li>已发送邮件2</li>
 <li>已发送邮件3</li>
 </ul>
 </div>
 `
 })
 //配置路由词典
 new Vue({
 router:new VueRouter({
 routes:[
 {path:'',redirect:'/login'},
 {path:'/login',component:myLogin},
 {path:'/mail',component:myMail,children:[
 {path:'/inbox',component:myInBox},
 {path:'/outbox',component:myOutBox}
 ]},
 ]
 }),
 el:"#container",
 data:{
 msg:"Hello VueJs"
 }
 })
 //通过再次指定一个<router-view></router-view>和children:[]
 </script>
 </body>
</html>

下载本文
显示全文
专题