醉蔷薇 2023-02-23 09:46 采纳率: 0%
浏览 11

当自定义指令遇到keepalive

使用vue2开发的前端项目,当组件使用keepalive进行缓存之后,项目里有个全局的自定义指令
代码如下:


```javascript
Vue.directive('enter',{
  inserted(el){
    window.addEventListener('keydown',(even)=>{
      if(even.code === 'Enter'){
          el.click()
        }
      })}},
  unbind(){
  winddow.onkeydown=null  
  }
)


,很多组件都使用了该指令,我理解的是当组件销毁的时候自动执行unbind()方法,但是因为现在组件缓存了,不销毁,没办法执行该方法,导致事件无法解绑,这就使得 ,当我按下enter键的时候,多个缓存的页面绑定该指令的按钮都会执行click()方法,有什么办法帮我解决一下该问题啊

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-23 12:27
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 2月23日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错