Vue.set()用法
用于向响应式对象添加一个属性,确保这个新的属性也是响应式的。说白了就是向data里面添加属性。注意:添加的属性必须在data属性里面定义了,
不允许直接添加一个类似于data的根级响应属性
/**
obj:目标对象 来自data根属性里面的数据对象
attr_name:新增属性名
atrr_value:属性的取值
**/
Vue.set(obj,attr_name,attr_value);
案例:给data中中的myData添加属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<p>{{msg}}</p>
<p>{{myData.name}}</p>
</div>
<script src="js/vue.js"></script>
<script>
//创建Vue实例
var vm=new Vue({
//data的数据是具有响应式的,如果msg的值发生变化,页面取值会跟着变化
data(){
return {
msg:'hello set',
myData:{}
}
},
}).$mount("#app");
//Vue.set给实例对象添加一个属性,且这个属性具有响应式。
/*注意:添加的属性必须在data属性里面定义了,
不允许直接添加一个类似于data的根级响应属性
*/
Vue.set(vm.myData,'name','hua');
</script>
</body>
</html>
效果: