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']}
*/
运行结果: