Vue.js 路由学习!

2020-07-22  本文已影响0人  Null丶sleep

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。路由实际上就是可以理解为指向,就是我在页面上点击一个按钮需要跳转到对应的页面,这就是路由跳转

路由跳转

getRegister() {
  const {href} = this.$router.resolve({
             path: `/register`
        });
      window.open(href, '_blank');
},
<router-link :to="...">
// 字符串
router.push('home')
// 对象
this.$router.push({path: '/login?url=' + this.$route.path});
// 带查询参数,变成/backend/order?selected=2
this.$router.push({path: '/backend/order', query: {selected: "2"}});
// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})
//声明式:
<router-link :to="..." replace></router-link>
// 编程式:
router.replace(...)
//push方法也可以传replace
this.$router.push({path: '/home', replace: true})

路由传参

//存进去
this.$router.push({
  path: '/home',
  query: {
    site: [],
    bu: []
}
})
//取出来
this.$route.query.site
//存进去
this.$router.push({
     name: `xxx`,
     params: {
     page: '1', code: '8989'
    }
  })
//取出来
this.$route.params.page
{
path:'/one/reg/:num',
component:Reg,
}
//取出来
this.$route.params.num
router.beforeEach((to, from, next) => {
    console.log(to) => // 到哪个页面去?
    console.log(from) => // 从哪个页面来?
    next() => // 一个回调函数
}
router.afterEach(to,from) = {}
beforeRouteEnter (to, from, next) {
   // 注意,在路由进入之前,组件实例还未渲染,所以无法获取this实例,只能通过vm来访问组件实例
   next(vm => {})
}
beforeRouteUpdate (to, from, next) {
   // 同一页面,刷新不同数据时调用,
}
beforeRouteLeave (to, from, next) {
   // 离开当前路由页面时调用
}
export default new VueRouter({
    routes: [
       { path: '/',
         name: 'home',
         component: 'Home',
         beforeEnter: (to, from, next) => {// ...
          }
        }
    ]
})
上一篇 下一篇

猜你喜欢

热点阅读