vue.js - 跟踪 vue.js 中外部变量的计算属性未更新

标签 vue.js vuejs2

我有一个计算属性 - playerId,它引用了一个没有更新的外部对象。

例如:

var player = require('players');
computed: {
    playerId: function() {
         return player.id
    }
}

如果我在点击事件中运行此调用,它会输出正确的 ID。但是,当它更新时 - 自行计算不会更新。我如何让它工作?还是我做错了?

最佳答案

Vue.js 中的计算属性不会对没有任何反应依赖性的数据产生 react 。例如,下面的代码将不会每次都更新,因为Date.now() 没有反应依赖。这个计算值的结果被缓存,它总是返回与第一次返回的值相同的值。

computed: {
  now: function () {
    return Date.now()
  }
}

然后,您可能想知道如何使您的外部对象具有反应性。关键是,您最好将对象放入 data 部分,以便使用 Vue 的内部观察器跟踪它的变化。如果您的计算属性甚至有一个响应式依赖项,例如引用 data 或调用 method,它会在每次更新依赖项并且从计算属性返回的内容正在运行时收到通知也要更新。

https://v2.vuejs.org/v2/guide/computed.html

关于vue.js - 跟踪 vue.js 中外部变量的计算属性未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46332931/

相关文章:

javascript - 当事件 $emit 发出时,Vue $on 不运行我的函数,即使我可以看到在 Vue 控制台中触发的事件

javascript - Vue.js 和 jQuery?

javascript - 从选定的下拉列表中获取值 Vue Js

vue.js - 动态显示数组长度

javascript - 输入 @keyup 事件在 Vue 中不起作用

javascript - 在 vue 中的特定元素中向下滚动

javascript - 将数据发送到嵌套自定义输入组件的正确方法

javascript - Vuex + VueJS : Passing computed property to child is undefined

python - 当 URL 中没有尾部斜杠时,使用 VueJS 单页的 Django 路由会出现意外行为

Laravel 5.5 + Vue.js 2.x 项目无法在 npm run dev 上运行