前端杨某 2022-07-21 22:16 采纳率: 100%
浏览 15
已结题

为什么不通过ref子组件来实现数据共享

今天学习了组件之间的数据共享,然后又学习了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。只能说我们对这种东西是又爱又恨了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月22日
  • 创建了问题 7月21日

悬赏问题

  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用