问题标签 [vue-reactivity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5010 浏览

javascript - Vuejs Es6 类反应性

我正在尝试将 vuejs 中的计算属性关联到 es6 类。我的 Vue 实例如下所示:

我的课看起来像这样

如果我尝试做这样的事情:

但是 setter 从来没有被调用过,就像失去了反应一样,我不明白为什么。

我也尝试:

我将 customClass 作为道具传递,但即使直接在组件中创建新实例也不会改变结果。

在 vuejs 文档中,我不记得有一节讨论过 es6 类中的反应性问题,所以我想知道是否有人知道为什么以及如何使我的类具有反应性。

提前致谢

0 投票
1 回答
185 浏览

javascript - 兄弟组件通信vuejs 2

我有一个 Vue 组件,它代表一个看起来像这样的页面(ParentComponent.vue):

面包屑.vue:

Content.vue(脚本部分):

路由器定义的组件(在本例中标记为 Content.vue)将放置在 ParentComponent 的路由器视图中,该组件需要与“面包屑”组件通信以更新页面标题和面包屑。

我尝试过全局事件总线,我尝试过道具传递。你会在接收到发射时注意到 console.log。它更新得很好,在 chrome 中使用 VueJS 调试器,变量被填充。但我无法让它更新 DOM/演示文稿。我已经到处搜索并获得了道具传递和全球巴士的建议,但缺少一些东西。

请帮忙 :)

提前致谢!

0 投票
2 回答
620 浏览

object - 多维对象中深度嵌套的数据对象

我有一个多维对象并使用 Vue,我试图使内部对象具有反应性。

我的对象如下所示:

填充的数据如下所示:

如果我尝试使用:

它抛出一个错误:

TypeError:无法设置未定义的属性“0”

如果我在下面尝试,它会覆盖初始值,因为它最初将对象设置为{}

将值添加到多维对象的正确方法是什么?

0 投票
1 回答
96 浏览

javascript - Vue.js 组件数组在替换为较短的数组时会错误呈现

我正在向Vue.js(2.5.16 版)介绍自己,但在理解Reactivity的问题时遇到了问题:

我有两个组件列表,其中v-for大部分时间都正确呈现循环 - 我可以与组件交互并添加新组件。这些组件与表示“区域”的 REST API 交互,我希望其功能相当明显 - 它主要返回单个或所有“区域”的 JSON 表示,例如:

每当添加或删除区域时,应用程序都会重新加载整个区域列表。但是,由于某种原因,当我删除一个区域并触发重新加载区域时,列表会使用错误的数据呈现!无论我删除哪个区域,列表的最后一项似乎都“弹出”了,而不是预期的区域没有出现在新列表中!当我检查 app.zones 数据时,Javascript 数据中的所有内容都显示正确,但它只是没有显示在浏览器中。

以下是相关代码:

我已经阅读了几篇参考资料,似乎有一些边缘案例或其他“问题”,但这似乎不属于其中任何一个。例如,另一个问题似乎同意替换整个数组是在 Vue.js 反应性系统的约束内更改数组的一种非常简单的方法。

我检查过的其他一些指向Vue.js 文档的链接是相关的,但似乎并不指向我的问题:

深度反应

列表渲染

常见的初学者陷阱

有关上下文中的完整代码,请参阅此处的 github 存储库。

更新

根据评论,我在简化的JSBin中重现了这些症状。单击任何按钮可以看到,当第二个元素应该被删除时,最后一个元素会被删除!

0 投票
1 回答
910 浏览

vue.js - 如何在 VueJS 中外部触发下拉菜单的反应性

有一种情况,我需要从 VueJS 外部触发 VueJS 管理的组件的更改。

我发现我可以通过触发或调用其click()属性来轻松地在复选框上执行此操作,但我不能对 ainput[type=text]select元素执行相同的操作。

jsfiddle 在这里

我在 VueJS 文档中查看了反应性如何工作,但不明白如何在这里实现。我该怎么做?

0 投票
1 回答
2611 浏览

vuejs2 - 如何在 vuejs 插件中创建反应性全局属性?

我将 $testCounter 放在一个插件中以使其成为全局:

我想在某个组件中输出它。我还需要它的值在全球范围内进行更新,并且是被动的:

我需要该属性具有反应性,我尝试了多种解决方案作为观察者、计算道具、vm.$set(...),但我找不到正确的方法来做到这一点。

0 投票
1 回答
186 浏览

vuejs2 - Vue 2.5 中的文字对象和属性反应性

为什么绑定到组件属性的文字对象的嵌套字段没有反应和观察?

例子:

当您在 my-comp 中执行此操作时:

我知道我可以玩它,但我只是问为什么不呢?有没有一种巧妙的方法使它具有反应性?

谢谢!

0 投票
1 回答
932 浏览

javascript - Vue js ajax调用后设置数据

我有一个显示用户信息的地方,当页面刷新时,我从 ajax 调用中读取用户信息并设置用户信息数据。但是由于 axios 调用的耗时过程,数据设置是在 DOM 渲染之后执行的。

HTML:

Vue.js:

刷新页面后出现此错误:

0 投票
2 回答
693 浏览

javascript - 如何启用跟踪组件道具的深度变化

我有一个像这样初始化的组件

并且有与此类似的 HTML

在哪里

所以我的问题是为什么变体 2不起作用,我应该改变什么以使我的控件对按钮单击时的值重置做出反应。或正确解释为什么(1)有效,但(2)无效 - 也将被接受为答案。

0 投票
0 回答
265 浏览

vue.js - 使用“createElement”函数时如何使道具绑定反应

这是我们使用vue-js-modal的应用程序的简化版本。基本思想是我们将组件声明与所需的VNodeData一起传递给插件函数,并将该组件附加到具有适当数据绑定的预定义 DOM 点。

我们的用例是:

  1. 用户点击“提款”
  2. 弹出带有输入字段和显示用户余额的静态字段的模态
  3. 用户输入他/她想要提取的金额,该金额和结果余额显示在被调用方组件中。

除了输入字段外,还有一个“全部”按钮,用户可以轻松输入等于他/她余额的数字

问题:当用户单击“ALL”时,“modal”组件会触发一个带有余额值的“input”事件,并且被调用组件接收该事件并更新其“withdrawAmount”。但是 'withdrawAmount' 应该作为 'value' 属性传递回 'modal' 并进一步更新输入字段,这不会发生。