一.组件内的路由钩子函数
(1)beforeRouteEnter(to, from, next) {
next();
},
一进入组件立即执行,里面的next()方法必须执行
(2)beforeRouteUpdate(to, from, next) {
next();
},
触发条件:1.地址栏发生了改变,比如params传参的时候配置动态路由
地址发生变化了, /vip/001 变成了 /vip/002 会触发
2.当query传参的时候,参数值发生了变化也会执行,因为query相当于get请求,组件路由更新钩子函数
不会触发:★ params传参的时候(没有配置动态路由) 是不会触发 组件路由更新钩子函数,
跳转的话在这里不可以使用this.$route.query.id,因为会获取之前的id不是跳转后的id
(3)beforeRouteLeave(to, from, next) {
next();
},
离开组件立即执行
next(false)表示阻止路由跳转
二、params传参和query传参的区别
params:1.动态路由的方式,id传过去是数字类型,刷新后是字符串型
2.不采用动态路由的方式:第一次id是可以发送出去的是数字类型,但是值一刷新就消失了,如果不采用动态路由的方式,想刷新还存在就是用本地缓存的方式
3.用params传值,只能采用name的方式,不能采用path否则id传不过去
4.params传参,参数不会再地址栏展示出来
query:1.id传过去是数字类型 刷新之后是字符串类型
2.采用query传参的方式比params好在,刷新之后值不会消失
3.query传参可以使用path的方式而params不可以
4.使用query传参 参数是会在地址栏上明文展示出来
3.路由的跳转
4.路由元信息meta
(1)在index页面设置meta
(2)在组件页面进行使用