【发布时间】:2018-07-20 03:06:41
【问题描述】:
我正在使用 instance properties 构建一个 VueJS 插件,我需要将一些反应值带回 VueJS。
我的搜索:
我不明白Object.defineProperty()背后的东西,我搜索了vuex getters initialisation,因为我的逻辑相似,但我不明白如何正确操作。
简单示例:
在附加到他的原型的 VueJS sn-p 下方,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() 吗?
【问题讨论】:
标签: javascript vue.js vuex vue-reactivity