Vue.set( target, key, value ) 设置数组元素/向响应式对象添加属性
2018-09-29 15:05
525 查看
本文介绍Vue.set( target, key, value ) 的两个功能:1. 设置数据数组对象元素; 2.向响应式对象添加属性
[code]<div id="div"> <p >{{items}}</p> </div> <script> var vm = new Vue({ el:"#div", data: { items: ['a', 'b', 'c'] } }); Vue.set(vm.items,2,"ling") </script>
1. 设置数组元素
Vue.set(vm.items,2,"ling") : 表示 把vm.items 这个数组的下标为2 的元素,改为"ling"
把数组 ["a","b","c"] 修改 后是 ["a","b","ling"]
注意:
这里的意思是,set 这个方法只能用于data 里面的子数组对象,而不能直接用于data (这个根数据)或 者vue 实例
2.向响应式对象添加属性
[code]<div id="div"> <p >{{person}}</p> </div> <script> var vm = new Vue({ el:"#div", data: { person:{ name:"ling", job:"engineer" }, created:function(){ alert(this.person.age) } }); Vue.set(vm.person,"age","26") </script>
var vm = new Vue({
el:"#div",
data: {
person:{
name:"ling",
job:"engineer"
},
created:function(){
alert(this.person.age)
}
});
Vue.set(vm.person,"age","26")
注意:person 是data 里面的子对象,所以可以使用 Vue.set( ) 方法。data 这个根对象就不能使用 set 方法
说明:控制台可以在person 里找到age 这个属性,说明添加成功 (响应式)
对比非响应式方法:
vm.food="chocolate"
alert(vm.food)
控制台和网页上的 {{person}} 都没有显示food 这个属性,说明food 这个属性没有被添加 (非响应式)
阅读更多
相关文章推荐
- setValueForKeyPath理解。访问设置对象的属性的话可以使用setValue forKey 访问属性的属性forKeyPath
- 解决vue select当前value没有更新到vue对象属性的问题
- Memcached expire 设置错误引起的set(key,exp,value)为true而get(key)为null的问题
- vue2.0关于set添加属性后视图不能更新的问题
- Memcached expire 设置错误引起的set(key,exp,value)为true而get(key)为null的问题
- 如何在dropdownlist动态添加item之后,如何设置其value值! /用JS控制服务端dropDownlist和textField的Readonly属性
- VUE中对象添加属性
- jqery中无法通过 .data(key,value)方法来设置 data-*的属性
- LINQ To XML:设置子元素的值、添加子元素或移除子元素(XElement.SetElementValue)
- vue将对象新增的属性添加到检测序列
- 动态-JS实现给对象动态添加属性并赋值 及 实现AJAX data传递动态key键名
- vue将对象新增的属性添加到检测序列的方法
- Vue之Vue.set动态新增对象属性
- 在唯一密钥属性“value”设置为“login.aspx”时,无法添加类型为“add”的重复集合项
- 【iOS开发-60】案例学习:多组数据的tableView设置、添加右側组索引、多层数据模型设置以及valueForKeyPath
- javaEE数据库查询数据时,bean对象需要添加属性的set、get方法,否则查找不到
- iOS 将对象的属性和属性值拆分成key、value,通过字符串key来获取该属性的值
- WinForm中ComboBox添加Key/Value项、获取选中项、根据Key、Value设置选中项总结
- 有关新建对象(key,value是动态)与往json对象添加key
- 对VUE中的对象添加属性