Cel*_*lso 2 vue.js vue-component vuejs2
我正在学习Vue.js,并且能够编写一个简单的列表/详细信息应用程序.选择第一个项目会使用正确的数据呈现详细信息组件,但是当我选择其他项目时,详细信息组件不会使用正确的信息重新加载.
例如:
<template>
<div>
<detail :obj="currentObject"></detail>
</div>
</template>
<script>
export default: {
data: function(){
return {
currentObject: null,
objs = [
{name:'obj 1'},
{name:'obj 2'}
]
};
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
当我使用正确的内容this.currentObject = objs[0]进行组件detail更新时.但是,下次我打电话时this.currentObject = objs[1],组件detail不再更新.
小智 5
不确定你的数据在你的上下文是什么currentObject,但下面是一个概念细节组件,当你切换objs它时,更新了道具:obj并且似乎工作正常.
查看代码,您应该声明objs使用:not =.
data: function() {
return {
currentObject: null,
objs: [
{name:'obj 1'},
{name:'obj 2'}
]
};
}
Run Code Online (Sandbox Code Playgroud)
这是概念细节组件,运行代码片段以检查它是否正常工作.
Vue.component('detail', {
props: ['obj'],
template: '<div>{{ obj }}</div>'
})
var app = new Vue({
el: '#app',
data() {
return {
bToggle: false,
currentObject: null,
objs: [
{name:'obj 1'},
{name:'obj 2'}
]
}
},
created(){
this.switchData();
},
methods: {
switchData() {
if(!this.bToggle){
this.currentObject = this.objs[0];
}else{
this.currentObject = this.objs[1];
}
this.bToggle = !this.bToggle;
}
}
})Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<div id="app">
<button @click="switchData()"> switch </button>
<detail :obj="currentObject"></detail>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |