咨询一个传递对象交互的解决方案

父组件传递一个对象给子组件,
子组件初始化数据 赋值到 data里面定义的各种变量(其中可能包括什么表单form对象, 或者表格数组等)
子组件里面绑定各种表单或者表格之类的修改数据,然后提交emit 父组件修改原始数据对象。
某些情况下父组件的数据里面的某些属性会被修改, 所以我又在子组件里面深度watch监听了这个对象的改变, 然后在重新初始化子组件里面的数据。
这样就造成了一个子组件里面数据被改变就emit 父组件,父组件数据被修改了。子组件又watch到了。
感觉这样写起来很麻烦,性能可能也较低。 请问有什么好的方案吗。

用vuex zsss

zsss是什么。请问下具体思路 什么样的

字数字数的。。。用vuex

你这个跟直接emit也没区别, 你问题没看清楚吧。我不是问这么交互信息,我是问 怎么交互信息比较好点。

子组件监听 props 值再进行 emit 是什么操作?

那你有好的方案?
emit通知父组件修改数据啊。
监听的 父组件数据有可能被改变 才来监听的

什么场景呢,举个例子? 你说的这种情况我遇到过,可以试试将 props 的值克隆给子组件, 子组件单独维护 这份数据,需要的时候再 emit 给父组件

性能没有变低。在子组件里,修改了数据,传递到父组件。看起来是绕了一圈,vue会不会一直死循环下去呢?感觉消耗了性能。但没有死循环,这是安全的做法。这是当初为什么当初取消aync,用emit的原因。

本来就是在子组件里面单独定义的变量,通过父组件props传递进去的,做了一定的逻辑赋值。不是一份数据。
我没说这么交互问题。

我是子组件只要里面有修改内容就 emit到父组件而已。 只是 又watch了prop的变化。
我问题是 怎么优化我说的逻辑。 当前逻辑是满足业务的,只是想问问好点的方案

父组件数据可能存在变化的。可能其他的组件修改了。 子组件内部的数据依赖父组件。
都是对象存在多级对象所以用了深度监听。
子组件修改了数据emit到父组件。 我子组件里面设置了判断不会死循环。

哦,我目前能实现的是用@chang绑定一个方法,取消一切watch。能不用就用。感觉这样少很多代码。

主要是设计修改的组件多。 你触发一个事件 通知子组件被修改了的话。那其实很麻烦。

简单,在子组件中直接使用父组件传过来的对象,然后没了。

你说的方案是最先排除掉的。 不可能直接用Prop。
不论是从数据量还是从 子组件引用来说 子组件只是依赖父组件数据而已 不是同样的, 从问题早就说明了 子组件的数据只是依赖父组件数据修改得来的。

虽然不符合最佳实践,但你可以试试,很省事

早就排除了。。。不符合功能逻辑。

楼主的意思是, 需要监听子组件中从父组件传过来进行处理过的数据的改变,再emit给父组件

对的,这是我目前的做法。 是想问问大家有没有好点方案。

可以试试,针对子组件中,表单的部分,是有效的