【发布时间】:2017-09-28 15:26:06
【问题描述】:
TL;DR 小提琴,https://jsfiddle.net/neon1024/3zn9arj3/4/
<div id="app">
<repos v-bind:repos='[{id: 1, full_name: "davidyell/app", description: "Daves custom CakePHP 3.0 app template"}, {id: 2, full_name: "davidyell/app-template", description: "An empty 2.4 cakephp application template, for use with composer"}]'></repos>
</div>
Vue.component('repos', {
template: `
<div>
<ul>
<li v-for="(repo, index) in repos">
{{ repo.full_name }} -> {{ repo.description }}
<span v-on:click="removeIt" style="color:red;cursor:pointer" v-bind:data-index="index">Delete</span>
</li>
</ul>
</div>
`,
props: {
repos: {
required: true
}
},
methods: {
removeIt(event) {
this.repos.splice(event.target.dataset.index, 1);
console.log(this.repos);
}
}
});
new Vue({
el: '#app'
});
我正在使用道具将数据传递到我的组件中,并且我希望能够删除项目并更新 dom。
但是当我删除时,prop 的内部状态发生了变化,但是 dom 没有更新。
【问题讨论】: