Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
510 views
in Technique[技术] by (71.8m points)

质询一个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组件中各种数据。

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

Just Browsing Browsing

[4] html - How to create even cell spacing within a

2.1m questions

2.1m answers

60 comments

56.7k users

...