vue-route

vue-route

vue-route详解
基础用法

//被vm实例所控制的区域
<router-link to="/user">user</router-link>
//路由占位符
<router-view></router-view>
//创建路由实例对象
const router = new VueRouter({
//所有的路由规则
  routes:[
     {path:'/',redirect:'/user'},  //路由重定向
     {path:'/user',component:User}
  ]
})
//创建vm实例对象
const vm = new Vue({
  el:"#app",
  data:{},
  router   //挂载路由实例对象
})

嵌套路由

const User = {
  template:`<div><router-link to="/user/tab1"></router-link> <router-view></router-view></div>`
}
const router = new VueRouter({
//所有的路由规则
  routes:[
     {path:'/',redirect:'/user'},  //路由重定向
     {path:'/user',component:User,children:[
       //子路由规则
           {path:'/user/tab1',component:Tab1}
      ]}
  ]
})

动态匹配路由基本用法

应用

const router = new VueRouter({
//所有的路由规则
  routes:[
     {path:'/',redirect:'/user'},  //路由重定向
     //动态路径参数,以冒号开头
     {path:'/user/:id',component:User}
  ]
})
const User = {
//路由组件中通过$route.params获取路由参数
  template:'<div>User {{$route.params.id}}</div>'
}

$route与对应路由形成高度耦合,不够灵活,所以使用props将组件和路由解耦
方式1 props的值为布尔类型

const router = new VueRouter({
//所有的路由规则
  routes:[
     {path:'/',redirect:'/user'},  //路由重定向
     //动态路径参数,以冒号开头
     {path:'/user/:id',component:User,props:true}
  ]
})
const User = {
props:['id'],//使用props接收路由参数
//路由组件中通过$route.params获取路由参数
  template:'<div>用户Id:  {{id}}</div>'  //使用路由参数
}

方式2 props的值为对象类型

const router = new VueRouter({
//所有的路由规则
  routes:[
     {path:'/',redirect:'/user'},  //路由重定向
     //动态路径参数,以冒号开头
     {path:'/user/:id',component:User,props:{name:'lisi',age:12}}
  ]
})
const User = {
props:['name','age'],//使用props接收路由参数
//路由组件中通过$route.params获取路由参数
  template:'<div>用户Id:  {{id}}</div>'  //使用路由参数
}

方式3 props的值为函数类型

const router = new VueRouter({
//所有的路由规则
  routes:[
     {path:'/',redirect:'/user'},  //路由重定向
     //动态路径参数,以冒号开头
     {path:'/user/:id',
     component:User,
     props:route=>({name:'lisi',age:12,id:route.params.id})}
  ]
})
const User = {
props:['name','age','id'],//使用props接收路由参数
//路由组件中通过$route.params获取路由参数
  template:'<div>用户Id:  {{id}}</div>'  //使用路由参数
}

编程式导航参数规则

router.push()方法的参数规则

router.push('/home')
router.push({path:'/home'})
router.push({name:'/user',params:{userId:123}})
router.push({path:'/register',query:{uname:"lisi"}})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值