再用vue编写一个指令的时候遇到这种情况
定义指令
组件引用
长按调用方法
问题:第一加载没有问题,当图二中的数据发生变化的时候,数据顺序发生变化,但是图三中的console.log 打印出的还是第一次的数据,打印数据没有相对应得发生变化,这是什么原因造成得?
再用vue编写一个指令的时候遇到这种情况
定义指令
组件引用
长按调用方法
问题:第一加载没有问题,当图二中的数据发生变化的时候,数据顺序发生变化,但是图三中的console.log 打印出的还是第一次的数据,打印数据没有相对应得发生变化,这是什么原因造成得?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
组件进行初始化的时候,也就是第一次运行指令的时候,会执行bind钩子函数,你传入的参数都进入到了这里,比如元素事件的绑定。
当你的数据进行更新时,vue虚拟dom不会销毁这个组件,而是更新(根据数据改变),如果指令有update钩子会运行这个钩子函数,但是对于元素在bind中绑定的事件,你在update中梅苑处理的话,他不会消失,他会形成闭包,所以你看到的结果还是元结果。
你可以给父元素一个key值,也就是销毁父元素,重新绑定