
在看一些源码的时候,经常会看到类似下面的写法:
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 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 对于逻辑交互不复杂(表单表格行多,页面多不等于复杂),简化开发比严格的业务流程更重要 对于有基础的程序员,简单的东西可以用约定大于框架限制,不带套不要紧,约定你不射我不蹭就没事 |