2021.0729
1.监听路由触发事件的语法:
watch: {
$route: function clearSelectionRow() {
console.log("success");
this.$emit("setSelectionFile", []);
},
}
代码实现功能:当本页面路由发生变化的时候,执行回调函数clearSelectionRow();
2.可能遇到的问题:
①$route后接函数,函数可以是现定义的,也可以是在methods方法中已经定义完成的;
②监听watch封装在最底层的组件的时候,注意跳转后该组件是否摧毁重建;如果被摧毁重建,路由监听触发事件将不执行,摧毁重建:一个组件调用两次分别显示,在页面上无区别,但是是同意组件的再次渲染,定义在该组件上的路由变化将监听不到。
解决方法:将路由监听放在一直不变的主页面index.vue上.
③当需要在同一属性下执行多个回调函数的时候,将函数以对象的形式放在数组中
$route: [
function clearSelectionRow() { //回调函数1
this.$emit("setSelectionFile", []);
},
{//回调函数2
handler(route) {
},
],