前端杨某 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 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染