一级路由
<div id="app">
<!--跳转-->
<router-link to="/home" tag="button">home</router-link>
<router-link to="/list" tag="button">list</router-link>
<!---显示组件-->
<router-view></router-view>
</div>
<script>
let home={template:"<div>home</div>"}
let list={template:"<div>list</div>"}
let myrouter=new VueRouter({
routes:[
{path:"",component:home},
{path:"/home",component:home},
{path:"/list",component:list},
{path:"/*",component:home}
],
linkActiveClass:'box'
})
let vm= new Vue({
el:"#app",
components:{
home,list
},
router:myrouter
})
</script>
二级路由
<div id="app">
<!--跳转-->
<router-link to="/home" tag="button">home</router-link>
<router-link to="/list" tag="button">list</router-link>
<!---显示组件-->
<router-view></router-view>
</div>
<template id="list">
<div>
<router-link to="/list/xiangqing">详情</router-link>
<router-link to="/list/addlist">添加</router-link>
<router-view></router-view>
</div>
</template>
<script>
let home={template:"<div>home</div>"}
let list={template:"#list"}
let xiangqing={template:"<div>xiangqing</div>"}
let addlist={template:"<div>addlist</div>"}
let myrouter=new VueRouter({
routes:[
{path:"",component:home},
{path:"/home",component:home},
{path:"/list",
component:list,
children:[
{path:'',component:xiangqing},
{path:'xiangqing',component:xiangqing},
{path:'addlist',component:addlist}
]
},
{path:"/*",component:home}
],
linkActiveClass:'box'
})
let vm= new Vue({
el:"#app",
components:{
home,list
},
router:myrouter
})
</script>
编程式导航
<div id="app">
<router-link to="/home">home</router-link>
<router-link to="/list">list</router-link>
<router-view></router-view>
</div>
<script>
let home={
template:"<div>home<button @click='tolist'>去列表页</button></div>",
methods:{
tolist(){
this.$router.push('/list');
}
}
}
let list={
template:"<div>list<button @click='back'>返回</button></div>",
methods:{
back(){
this.$router.back();
}
}
}
let router=new VueRouter({
routes:[
{path:'',component:home},
{path:'/home',component:home},
{path:'/list',component:list}
]
})
let vm= new Vue({
el:"#app",
components:{
home,list
},
router
})
</script>
传参
<div id="app">
<!---{name:'跟映射表的name名一致',params:{传递的多个参数}}-->
<!--2, to="/home/参数"-->
<router-link :to="{name:'pro',params:{c:1,b:2}}">home1</router-link>
<router-link to="/home/2/3">home2</router-link>
<router-view></router-view>
</div>
<script>
let home={
template:"<div>第{{$route.params.c}}篇文章{{this.$route.params.b}}</div>",
watch:{
$route(n,l){
console.log(n);
console.log('ajax');
}
}
}
let myrouter=new VueRouter({
routes:[
{path:'/home/:c/:b',component:home,name:'pro'}
]
})
let vm=new Vue({
el:"#app",
components:{
home
},
router:myrouter
})
</script>