Vue.js中计算变量的更新方式
全部: 我是Vue的新手,有一个问题让我很困惑: 我将Vue实例定义为事件总线,类似于:Vue.js中计算变量的更新方式,vue.js,Vue.js,全部: 我是Vue的新手,有一个问题让我很困惑: 我将Vue实例定义为事件总线,类似于: var总线=新的Vue({ 数据:{ 名单:[] }, 方法:{ getUpdatedList(){ var bus=此; LIST_AJAXRequest.then(函数(updatedList){bus.LIST=updatedList);bus.$emit(“NEW_DATA”)} } }) 并在以下组件中使用此事件总线: Vue.component(“列表项”{ 模板:“”, 道具:[“物品”],
var总线=新的Vue({
数据:{
名单:[]
},
方法:{
getUpdatedList(){
var bus=此;
LIST_AJAXRequest.then(函数(updatedList){bus.LIST=updatedList);bus.$emit(“NEW_DATA”)}
}
})
并在以下组件中使用此事件总线:
Vue.component(“列表项”{
模板:“”,
道具:[“物品”],
数据(){
返回{myitem:this.item}
},
方法:{
sendUPDATE_AJAXRequest(){//API请求更新此列表项}
},
创建(){
var vm=这个;
bus.$on(“NEW_DATA”,function(){vm.myitem=Object.assign({},vm.item);})
}
})
Vue.component(“数据列表”{
模板:“1-使用箭头函数,无需将此
关键字放入另一个变量
2-请阅读文章“事件总线如何工作”
在发出请求的组件中:
send_request () {
axios.put('url_here', { data_here })
.then(response => eventbus.$emit('data_updated', response.data))
}
在要侦听该事件的组件中:
created() {
eventBus.$on('data_updated', data => {
console.log(data);
})
}
在本例中,我使用了我推荐使用的axios。bus.list=updatedList)
有语法错误。我想问题可能是您没有键入由v-for
生成的列表项组件。请首先查看,代码触发列表\u AJAXRequest?然后是bus.$on(“新数据”,函数(){vm.myitem=Object.assign({},vm.item);})
不是必需的,对'prop=item'使用一个监视会更好(遵循Vue流)。可能您知道我一直在得到“uncaughttypeerror:无法分配到只读属性监视。。。“
,但列出项目。项目似乎不是只读的,或者您在监视程序中做错了什么。