sam老师,请问自定义指令 waves 里面这里我注释的代码有什么意义?

来源:14-1 电子书列表查询条件开发

前端小y

2020-06-09

图片描述
看了半天不知道这里是考虑什么情况做的处理,我注释后也能正常运行

写回答

2回答

前端小y

提问者

2020-06-11

关于directive中的update会被多次调用

初始化组件时,情况是 bind 一次,update 两次,指令绑定到‘查询’按钮,真实dom是

//img1.sycdn.imooc.com/szimg/5ee115e8087d35f513110587.jpg

//img.mukewang.com/szimg/5ee11669088add9912770480.jpg

我点击‘查询’按钮后,真实dom是

//img.mukewang.com/szimg/5ee116d0088aee4614440632.jpg

但是指令的钩子 update 未触发(componentUpdated 也未触发,组件初始化和update一样触发两次),这里我就有点不理解官网上的钩子触发条件,真实dom都已经更新了,为什么这两个钩子不触发?

//img.mukewang.com/szimg/5ee118be085990fd08790586.jpg

那么,在 update 绑定事件,又给el绑定一个属性  '@@wavesContext' 有何意义?


0
1
扬_灵
同学你好,初始化的时候componentUpdated也是被调用的,你可以在waves中添加componentUpdated钩子函数在里面打印一下。因为要在 update 阶段重新绑定点击函数,所以增加了一个上下文 '@@wavesContext',里面保存点击事件对应的移除事件函数。点击之后update钩子函数没有执行你可以看一下页面组件有没有更新。如果不能解决你的问题,可以继续追问。
2020-06-11
共1条回复

扬_灵

2020-06-10

同学你好,这是因为directive中的update会被多次调用,所以要在addEventListener之前清除一次事件,否则会导致事件的多次绑定,他注释这段代码后,会导致点击按钮时,handleClick方法被多次调用,如果帮助到了你,欢迎采纳!

0
1
前端小y
关于directive中的update会被多次调用,还是有点问题,麻烦看下我下面的回答
2020-06-11
共1条回复

Vue Element+Node.js开发企业通用管理后台系统

基于Element的中后台课程,一套中小型企业通用的后台管理系统

2829 学习 · 1704 问题

查看课程