vue路由----重定向、alias别名

1.在idea中新建vue项目

2.main.js中修改

import Vue from 'vue'
// import Router from './Router'     /*引用自同级Router.js*/
// import Router from './SonRouter'     /*引用自同级SonRouter.js*/
// import Router from './ComponentRouter'     /*引用自同级ComponentRouter.js*/
// import Router from './UrlRouter'
// import Router from './GrandSonRouter'
import Router from './redirectRouter'

在这里插入图片描述
3.src下新建文件redirectRouter.js

/*子路由*/
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
//声明模版,点击链接显示对应的内容
const first = { template:'<div>first内容</div>'}
const second = { template:'<div>second内容</div>'}
const Home = { template:'<div>Home内容</div>'}
const firstFirst = { template:'<div>firstFirst内容 {{$route.params.id}}</div>'}
const firstSecond = { template:'<div>firstSecond内容 {{$route.params.id}} {{$route.params.name}}</div>'}

const sonRunterTemplate ={
  template:`
      <div class="">
            <h2>组件</h2>
            <router-view class="red"></router-view> 
       </div>
  `
}

const router = new VueRouter({
  mode:'history',
  base:__dirname, //当前的路径   dirname在node中指当前的本地路径
  routes:[       //以数组的方式给出  [{},{}],多个的话一定是routes复数形式
    {path:'/',name:'Home',component:Home},
    {path:'/first',component:sonRunterTemplate,
      children:[
        {path:'/',name:'Home-First',component:first},
        {path:'first',name:'Home-First-First',component:firstFirst},
        {path:'second',name:'Home-First-Second',component:firstSecond},
        {path:'third',redirect:'first'}
      ]
    },
    {path:'/second',name:'Home-Second',component:second,alias:['/secondalias','/helloworld']},
    {path:'/aaa/:id',component:firstFirst},
    {path:'/bbb/:id',redirect: '/aaa/:id'},
    {
      path:'/ccc/:id',
      redirect: xxxx =>{
        const{hash,params,query} = xxxx;
        if(params.id == '001'){
          return '/'
        }
      }
    }
  ]
})

new Vue({
  router,
  template:`
    <div id='r'>
        <h1>导航</h1>
        <p>{{$route.name}}</p>
         <ol>
            <li><router-link to="/">/</router-link></li>   <!--router-link存放路由链接的   to相当于href,表示链接到哪里-->
            <li><router-link to="/first">first</router-link></li>
                <ol>
                    <li><router-link :to="{name:'Home-First-First',params:{id:147,name:'张三'}}">first</router-link></li>
                    <li><router-link :to="{name:'Home-First-Second',params:{id:258,name:'李四'}}">second</router-link></li>
                    <li><router-link to="third">third</router-link></li>
                </ol>
            <li><router-link to="/second">second</router-link></li>
            <li><router-link to="/secondalias">secondalias</router-link></li>
            <li><router-link to="/helloworld">helloworld</router-link></li>
            <li><router-link to="/aaa/0112309">aaa</router-link></li>
            <li><router-link to="/bbb/2333333">bbb</router-link></li>
            <li><router-link to="/ccc/001">ccc</router-link></li>
          </ol>
          <router-view class="green"></router-view>   <!--规定整个路由显示在其中,class表示修饰的类-->
    </div>
    `
}).$mount('#app')

/*

alias别名 单个  {path:'/second',name:'Home-Second',component:second,alias:'/secondalias'}
          多个  数组  {path:'/second',name:'Home-Second',component:second,alias:['/secondalias','/helloworld']}
*/




运行结果:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值