质询一个vue数据交互传递问题,我当前的办法比较坑,问问大家有没有好点方案?

这里没代码只是一个单纯的方案问题。
情况是这样的。目前有.vue路径组件页面(网页设计器那种,左侧栏是基础控件A组件,中间内容是 显示控件B组件(里面也就是input,select之类的), 右侧栏是 配置信息数据C组件)。

图目前不太好放。不好意思了。

我目前的方案是 数据变量定义为data(目前结构是树形数组,每一个也就是一个基础控件数据)
点击B组件某个控件,获取到data中对应控件的某一项元素内容,
然后prop传递到C组件(假设变量名 是propData)。
C组件主要是负责对控件内容进行修改配置。
我是C组件里面定义一个变量接受prop,然后深度watch propData的修改,主要是源数据在某情况下会有可能被其他东西修改,需要同步到C组件中。

当watch到修改后在重置C组件中各种表单或者表格内容之类的数据。
C组件中绑定的表格表格等内容修改后emit到父组件 进行修改的。
也就是 C组件内部修改后emit父组件修改 然后又watch到修改了,我内部watch中有加了部分逻辑判断对比修改内容,然后重置C组件中各种数据。

这个就是我目前的方案,想问大家有没有好点方案。
不知道大家能不能听懂 哈。。。

阅读 2k
2 个回答

项目中大:
data放入vuex,点击B组件或其他情况下都直接通过action->mutation修改data,propData是data下的一项内容,可以再vuex里加个getter,不需要watch,prop,emit等
项目小:
建一个空的vue实例,作为eventBus,放上data

你需要的是vuex,如果逻辑不重可以考虑用空的vue实例作为eventBus

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题