vue-router相关问题
# vue-router相关问题
# 1.点击详情,跳转路由的头部标题修改为监测点的名称详情
@edit="handleClick"
// 页面点击跳转
// 详情调整,传入镇街名称
handleClick (a) {
// console.log(a, 222)
// this.$openPageSt('/zoology-environment/dqhj/air-details', { zdmc: a.zdmc })
this.$router.push('/zoology-environment/dqhj/air-details', { zdmc: a.zdmc })
}
// 将标题修改为点击指定站点的名称
this.$route.meta.title = this.$route.query.zdmc + '空气质量详情'
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 2.vue-router钩子
一. 全局导航钩子函数
- 全局前置守卫--router.beforeEach()--在每个路由改变时,执行一遍,页面加载之前
- 全局后置守卫--router.afterEach()--页面加载之后
二.路由独享的守卫,路由内钩子
- beforeEnter
const router = new VueRouter({
routes: [
{
path: '/foo',
component: Foo,
beforeEnter: (to, from, next) => {
// ...
}
}
]
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
三.组件内守卫,组件内钩子
- beforeRouteEnter
- beforeRouteUpdate
- beforeRouteLeave--清除定时器,阻止用户跳转,将公用的信息保存到session或Vuex中
beforeRouteLeave (to, from, next) {
window.clearInterval(this.timer) //清楚定时器
next()
}
1
2
3
4
2
3
4
# 3.active-class哪个组件的属性,嵌套路由怎么定义
- active-class是vue-router模块的router-link组件中的属性,用来做选中样式的切换
- 嵌套路由:路由的path中,定义了children路由,嵌套在一起
{ path: "/", redirect: "/home" },//重定向,指向了home组件
{
path: '/home',
component: Home,
children:[
{ path: '/home/login', component: Login},
{ path: '/home/reg', component: Reg}
]
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 4.vue-router动态路由怎么定义,怎么获取传过来的动态参数
- 动态路由
- params的类型
配置路由格式:/router/:id
传递的方式:在path后面跟上对应的值
传递后形成的路径:/router/123
- 设置路由:path: '/article/:id'
- 跳转:this.$router.push(`/article/${id}`)
- 获取:this.$route.params.id
1
2
3
4
5
6
7
2
3
4
5
6
7
- query的类类型
配置路由格式:/router,也就是普通配置
传递的方式:对象中使用query的key作为传递方式
传递后形成的路径:/route?id=123
1
2
3
2
3