vue.jsで配列の中身の更新が反映されなかった
Contents
プロパティが、リアクティブでなければならない
プロパティの内容を更新後即時に検知することができる状態のことをリアクティブと認識しております。配列を扱うときのリアクティブであるための操作
直接配列に代入する形ではいけない?
以下のメソッドを使うことで、リアクティブな状態の配列を持つことができるpush()
pop()
shift()
unshift()
splice()
sort()reverse()
tmpListがリアクティブでない
vueObj = new Vue({
el: '#viewArea',
data: {
tmpList: [],
},
mounted: function() {
this.getTmpList();
},
methods:{
getTmpList: function() {
axios
.post('/api/tmp/get-tmp-list')
.then((res) =>{
this.tmpList = res.data.tmpList;
})
},
vueObj = new Vue({
el: '#viewArea',
data: {
tmpList: [],
},
mounted: function() {
this.getTmpList();
},
methods:{
getTmpList: function() {
axios
.post('/api/tmp/get-tmp-list')
.then((res) =>{
this.tmpList.splice(0,this.tmpList.length,...res.data.tmpList);
})
},
オブジェクトの場合
vm.$setを使う
this.$set(this.someObject, 'b', 2)
このような書き方をすることで、オブジェクトのプロパティ内に、新しいプロパティを追加して、値を入れることができます。
ディスカッション
コメント一覧
まだ、コメントがありません