84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
问下大家,如果我一个输入框基础组件A,在业务组件B中调用了,然后想在B中对A的onblur事件做响应。
在A中触发blur时直接dispatch一个具名事件冒泡到B
在B中给A传入一个函数,A中触发blur时回调这个函数
哪种方法更好点?
ringa_lee
个人认为第二种,将回调作为props传入A中使得父子组件间的逻辑关系更清晰。因为props可以在组件A中明确声明其格式、类型。通过事件传递确实看似简单,但实际操作中遇到的问题时后继难以维护,常常搞不清事件到底喷到哪里去了。如果你看类似的由组件构成的视图工具,譬如:react,你会发现里面直接通过事件传递的方式非常少见。如果react你不稀罕参考,那看看vue2就知道了,
props
A
react
vue2
vue2里$dispatch都取消了
$dispatch
都可以。不过我看你的代码中传递this就有点不太好了。。。
this
我觉得$dispatch好,代码逻辑简单
个人认为第二种,将回调作为
props
传入A
中使得父子组件间的逻辑关系更清晰。因为props
可以在组件A
中明确声明其格式、类型。通过事件传递确实看似简单,但实际操作中遇到的问题时后继难以维护,常常搞不清事件到底喷到哪里去了。如果你看类似的由组件构成的视图工具,譬如:react
,你会发现里面直接通过事件传递的方式非常少见。如果react
你不稀罕参考,那看看vue2
就知道了,vue2
里$dispatch
都取消了都可以。不过我看你的代码中传递
this
就有点不太好了。。。我觉得$dispatch好,代码逻辑简单