1. 路由传参query和params区别
使用query传参时,用path进行引入 (使用name也可以,推荐使用path)
this.$router.push({
path: '/warning/warning-query',
query: {
glbm: this.userInfo.dwdm,
item_name: item.subType
}
})
使用params传参时,用name进行引入(使用path会有问题,路由参数带不过去)
this.$router.push({
name: path,
params: {
dfzt: type, glbm: this.userInfo.dwdm }
})
2. A页面添加路由跳转至B页面,B页面添加路由监听,第一次进入页面监听不到路由跳转参数,再次进入才能监听到路由跳转参数的问题
解决方法:在路由监听方法中添加immediate: true,可以解决首次进入页面监听不到路由跳转参数的问题
watch: {
$route: {
handler: function (val) {
let params = this.$route.params
if (Object.keys(params).length > 0) {
for (let key in params) {
this.searchList.forEach((item, index) => {
if (key === item.key) {
if (item.formType === 'select' && item.multiple) {
this.defaultData[key] = [...params[key]]
} else {
this.defaultData[key] = params[key]
}
}
})
}
}
},
immediate: true
}
},