Vue.jsでオブジェクトのプロパティを追加する際の注意点
実行環境
- macOS 10.15.7 (19H1217)
- Vue.js 2.6.14
本題
例として,以下のようなオブジェクトhoge
について考えます。
Hoge.vue
...
{{ hoge.prop1 }}
{{ hoge.prop2 }}
...
data: function() {
return {
hoge: { prop1: 'prop1' }
}
}
...
hoge.prop1
については,以下の操作を行うことで,HTML上の値も更新されます。
this.hoge.prop1 = 'newProp1'
では,hoge.prop2
についても同様に以下の操作を行うことで,HTML上の値も更新されるのでしょうか。
this.hoge.prop2 = 'prop2'
実は,これでは更新されません。
data
ブロック内でhoge
のプロパティとしてprop2
が定義されていないためです。
しかし,以下の操作を行うと更新されます。
this.$set(this.hoge, 'prop2', 'prop2');
このように,Vue.jsでは,新しいプロパティをリアクティブにするためには,set
を使う必要があります。
参考文献
https://it-web-life.com/vue_object_not_updated/
https://jp.vuejs.org/v2/api/index.html#Vue-set
Author And Source
この問題について(Vue.jsでオブジェクトのプロパティを追加する際の注意点), 我々は、より多くの情報をここで見つけました https://qiita.com/texpandafter/items/d7ded9ee413a312fd165著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .