首页 > 代码库 > Vue.set全局操作
Vue.set全局操作
Vue.set 的作用就是在构造器外部操作构造器内部的数据、属性或者方法。比如在vue构造器内部定义了一个count为1的数据,我们在构造器外部定义了一个方法,要每次点击按钮给值加1.就需要用到Vue.set。
// 构造器外部数据 wrapData =http://www.mamicode.com/{ number:1 } var vm = new Vue({ el:"#app", data:wrapData, //引入外部数据(非内部构造器里面的) methods:{ add:function(){ this.number++; } } })
在外部改变数据的三种方法 *这些个button按钮都是写在外部不在new vue({})作用域里面
1、用Vue.set改变 function add(){ Vue.set(outData,‘count‘,4); }2、用Vue对象的方法添加 function wrapAdd2(){ vm.number++; }3、直接操作外部数据 function wrapAdd3(){ wrapData.number++; }
为什么要有Vue.set的存在?
由于Javascript的限制,Vue不能自动检测以下变动的数组。*当你利用索引直接设置一个项时,vue不会为我们自动更新。*当你修改数组的长度时,vue不会为我们自动更新。上面不是说到了三种改变number值得方法吗,如果是改变数组,通过下标,那三种方式中只有Vue.set会起作用,这也就是它存在的意义
html
<div id="app"> <!-- <span v-text="number"></span> --> <ul> <li v-for="item of items">{{item}}</li> </ul> </div>
js
function wrapAdd(){ // vm.items[0]=12; //外部调用vue属性方法不起作用 // wrapData[0]=12; //外部直接操作数组也是不起作用 // 这时候Vue.set在对数组方面就凸显出用处了 Vue.set(vm.items,1,12) } var wrapData =http://www.mamicode.com/[20,30,45] var vm = new Vue({ el:"#app", data:{ items:wrapData } //引入外部数据(非内部构造器里面的) })
Vue.set全局操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。