今天学习了组件之间的数据共享,然后又学习了ref,ref可以用来操作dom,ref也可以用来引用组件实例,打印this.$refs就是子组件,然后数据也都可以拿到,那为什么不通过ref子组件来实现数据共享呢?
1条回答 默认 最新
- 林地宁宁 2022-07-22 02:48关注
可以是可以,但这样破坏了封装性。vue 允许 ref,是为了某些特殊情况下用 ref 实现比较方便,而这样子就像有一张“看不见的手”在外面操纵着组件。
如果整个项目组只有你一个人工作在这个模块上,或者说文档里面强调了 ref 的相关信息,还可以接受;倘若没有人清楚 ref 这块的数据传递和共享机制,对接手的人来说就是个大粪坑。
尽管大家排斥这种破坏封装性的设计,但是不得不说有些时候,有这种“全局”的东西,写起来就是舒服。BTW,无论是 vue 还是 react 都有一些全局的库,就是为了避免冗余数据多次传递的,比如 vue 中的 vuex 和 react 中的 redux。只能说我们对这种东西是又爱又恨了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用