网络编程
位置:首页>> 网络编程>> JavaScript>> vue路由嵌套的SPA实现步骤

vue路由嵌套的SPA实现步骤

作者:匿名的girl  发布时间:2024-04-28 09:20:04 

标签:vue,路由嵌套

本文为大家分享了路由嵌套的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>

来源:http://www.cnblogs.com/wangruifang/p/7776934.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com