时间: 2020-09-12|34次围观|0 条评论

多页面跳转 A =>B =>A 即使都使用$router.place,回到A时,A里面用addEventListner注册的事件没移除,多次注册事件。

  • 方法 一

    /* 组件销毁前移除事件 */berforeDestroy(){    removeEventListner(event, eventFun) }// event : {string} 事件名(必须)// eventFunName: {function} 与这个事件绑定的函数(必须,addEventListner可以同时事件注册多个相应函数)/* 这就需要A页面中的每一个组件只要用到addEventListner注册事件,都需要这样写去主动销毁事件。*//* removeEventListner不支持匿名函数: */ele.addEventListner('click',()=>{console.log('匿名函数')}) // 这种就没办法通过removeEventListner来移除,因为第二个参数必须,匿名函数没名字。
  • 方法 二

    /* 用on的方式注册事件 */ele.onclick = function(){}// on的方式注册事件是不可以重复的,即由B回到A时,虽然上次的事件没移除,但这次再注册就把上次的覆盖了。
  • 方法 三

    // 妥协方案,打开新的窗口。(但有些时候需求就是要打开新的窗口)// 即两个页面互不相干openNewWindow(){   let routeUrl = this.$router.resolve({     path: "/pageB",     query: {id:96} //还可以带参数过去   });   window.open(routeUrl.href, '_blank');}

文章转载于:https://www.jianshu.com/p/93c172e9271b

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《vue多页面跳转事件多次注册
   

还没有人抢沙发呢~