在看一些源码的时候,经常会看到类似下面的写法:
this.$children.someData=XXX;
this.$parent.someMethod();
...
不是应该通过 prop 或 emit 来通信吗?
如 elmentui
https://github.com/ElemeFE/element/tree/dev/packages/carousel/src
1
zhzbql 2020-03-06 15:05:18 +08:00
使用 prop 或 emit 是为了降低耦合度,使组件更加通用。
当一个组件是高度定制化的,不考虑复用与公用的,直接调用父子组件更加直接与简单。 |
2
Vegetable 2020-03-06 15:08:03 +08:00
这就是在我(现在的我)爽和别人(未来的我)爽之间做出的抉择了。
|
3
GM 2020-03-06 15:16:28 +08:00 1
prop 或 emit 就像是套套,安全,无副作用,隔离性好,各种好。
就只有一个缺点:不那么爽。 this.$parent.someMethod() 之类的写法就像是不带套套,当时各种爽,事后,大家都懂。 |
4
Hoshinokozo 2020-03-06 15:23:20 +08:00
@GM 鬼才
|
6
murmur 2020-03-06 15:44:47 +08:00
对于逻辑交互不复杂(表单表格行多,页面多不等于复杂),简化开发比严格的业务流程更重要
对于有基础的程序员,简单的东西可以用约定大于框架限制,不带套不要紧,约定你不射我不蹭就没事 |