我需要制作一个相对复杂的 API 请求对象,其中有大量 UI 组件负责更新对象的不同属性。
我将基本请求模型作为道具从父组件传递给其子组件,子组件将其传递给他们的组件(几代人)。
在父级别,我有一个返回此数据模型的字段的计算属性,以及该计算属性的监视。
当子组件更新模型上的属性时,它会成功更新引用它的所有位置,但父组件上的计算属性无法重新计算,因此手表永远不会激活。
我猜我已经错过了这里的某个要点,但我无法想象如何在不通过用户界面诉诸长事件链的情况下进行更新。我应该如何解决这个问题?
P粉9937121592024-02-27 09:41:43
对于任何有类似问题的人 - 从我的研究来看,修改 props 上的参考值似乎不是 VueJS 的预期方法。这很遗憾,因为最初它看起来像是一个非常整洁的模式。
我现在已经实现了 vuex,它运行良好,并且避免了长长的事件线返回到 prop 数据的原始所有者。
如果您想按下它,那么修改对象本身的引用将强制更新链。因此(例如)如果您想更新 prop 数据的数组属性,那么您不需要“推送”它,而是替换整个数组对象(导致重新计算该数组属性上具有计算属性的其他组件)。但再次强调,不推荐。