我正在使用实例属性构建一个 VueJS 插件,我需要将一些反应值带回 VueJS。
我的搜索:
我不明白背后的东西Object.defineProperty()
,我搜索了vuex getters 初始化,因为我的逻辑相似,但我不明白如何正确操作。
简单的例子:
在附加到他的原型的 VueJS 片段下面,main.js
:
Vue.prototype.$ajax = {
loading: false,
isLoading () {
return this.loading
}
}
现在,从组件访问它component.vue
:
export default {
computed: {
loading () {
return this.$ajax.isLoading()
}
},
created () {
let self = this
setInterval(() => {
console.log(this.loading, this.$ajax.isLoading())
}, 100)
setTimeout(() => {
this.$ajax.loading = true
}, 1000)
}
}
}
示例结果:
在setTimeout
我们拥有之前false false
(这是预期的输出),但在setTimeout
我们拥有之后false true
(getter 没有收到修改,但直接访问器有值)。
将一些反应性的东西带入我的任何想法$ajax.isLoading()
?