Vue.set全局操作
Vue.set 的作用就是在构造器外部操作构造器内部的数据、属性或者方法。比如在vue构造器内部定义了一个count为1的数据,我们在构造器外部定义了一个方法,要每次点击按钮给值加1.就需要用到Vue.set。
// 构造器外部数据 wrapData ={ number:1 } var vm = new Vue({ el:"#app", data:wrapData, //引入外部数据(非内部构造器里面的) methods:{ add:function(){ this.number++; } } })
html
<div id="app"> <!-- <button v-on:click="add">数据变化</button> --> <button onclick="add()">数据变化</button> <div>{{number}}</div> </div>
在外部改变数据的三种方法 这些个button按钮都是写在外部 ,而不在new vue({})作用域里面
1、用Vue.set改变 function add(){ Vue.set(wrapData,'number',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 =[20,30,45] var vm = new Vue({ el:"#app", data:{ items:wrapData } //引入外部数据(非内部构造器里面的) })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?