在vue開發中,當生成vue實例后,再次給數據賦值時,有時候並不會自動更新到視圖上去;
eg:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue $set的使用</title>
<script src="https://static.runoob.com/assets/vue/1.0.11/vue.min.js"></script>
</head>
<body>
<div id="app"> 姓名:{{ name }}<br> 手機:{{phone}}<br> 性別:{{sex}}<br> 說明:{{list.instr}} </div>
<script>
var data = { name: "簡書", phone: '15736882244', list: { instr: 'my name is Yilia' } }
//var key = 'instr';var vm = new Vue({ el:'#app', data: data, ready: function(){
//Vue.set(data,'sex', '男');
//this.$set('list.'+key, 'who are you?');
} }); data.sex = '女'; </script>
</body>
</html>
這樣運行的結果是
姓名:簡書
年齡:15736882244
性別:
說明:my name is Yilia
解決方法是:
Vue.set(data,'sex', '男')
還可以使用 vm.$set實例方法,這也是全局 Vue.set方法的別名:
var key = 'instr'; //這種主要用於當對象中某個屬性值動態生成時處理方式
this.$set('list.'+key, 'who are you?');
或
this.$set('list.instr', 'who are you?');