首页 > 其他分享 >Vue 数据相关实例方法vm.$watch、vm.$set、vm.$delete介绍

Vue 数据相关实例方法vm.$watch、vm.$set、vm.$delete介绍

时间:2024-01-28 11:14:16浏览次数:21  
标签:function Vue watch vm 响应 set

vm.$watch

观察vue实例变化的一个表达式或计算属性函数。回调函数得到的参数为新值和旧值。表达式只接受监督的键路径。对于更复杂的表达式,用一个函数取代。

复制代码
//写法一:
this.$watch('a.b.c', function (newVal, oldVal) {})//键路径
vm.$watch( function () { this.fullName=this.firstName+' '+this.lastName; } )//函数 //写法二: watch:{ a:function(val,oldVal){}, "a.b":{ handler:function(newVal,oldVal){}, deep:true//如果监听的是一个对象,对象内部值发生变化,需要设置deep=true; },    c:{    handler:function(newVal,oldVal){}, immediate:true//该回调将会在监听开始之后立即调用    } }
复制代码

 

vm.$set

向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新

语法:vm.$set( target,key,value )

对于对象,propterty必须在data对象上存在才能让Vue将它转换为响应式的

复制代码
var vm = new Vue({
    data:{
        a:1
      }
})
vm.a = 1  // 响应式的
vm.b = 2  // 非响应式的
//Vue不允许添加根级别的响应式属性,但是可以使用
this.$set(this.someObject, "b", 2)||Vue.set(vm.someObject, "b" ,2)
复制代码

对于数组,Vue不能检测以下数组的变动

复制代码
var vm = new Vue({
  data: {
    items: ['a', 'b', 'c']
  }
})
vm.items[1] = 'x' // 不是响应性的
vm.items.length = 2 // 不是响应性的
this.Sset(this.items,1,"x");//处理方法
复制代码

vm.$delete

删除对象的属性,如果对象是响应式的,确保删除能触发更新视图。这个方法主要用于避开vue不能检测到属性被删除的限制。

语法:vm.$delete(target,key)
var vm = new Vue({..})
vm.delete(this.info, "age")

标签:function,Vue,watch,vm,响应,set
From: https://www.cnblogs.com/luluping/p/17992566

相关文章

  • Vue 响应性
    一、响应性原理 数据模型是被代理的JavaScript对象。而当你修改它们时,视图会进行更新。这让状态管理非常简单直观。理解其工作原理同样重要,这样可以避开一些常见的问题。1什么是响应性?响应性是一种允许我们以声明式的方式去适应变化的一种编程范例。如excell。js如何实......
  • 虚拟机vmware安装ubuntu磁盘塞满启动爆ubuntu 开机报错 piix4_smbus : SMBus Host Con
    虚拟机vmware安装ubuntu磁盘塞满启动爆ubuntu开机报错piix4_smbus:SMBusHostControllernotenabled错误解决办法  一、vmware硬件增加磁盘空间该虚拟机名称右键[设置]-虚拟机设置-【硬盘(SCSI)】-磁盘实用工具-扩展磁盘容量-【扩展】-增大适当的容量。二、重启VMWA......
  • VMMap内存分析工具
    VMMap是一个运行在windows上的内存Profier工具。按F5刷新数据。 虚拟内存PrivateBytes:进程PrivateCommitted(不含共享库部分)的虚拟内存字节数   对应VMMap的Private、windows任务管理器中的【提交大小】,资源管理器中的【提交】Committed(VMMap):进程PrivateCommitted的......
  • Solution Set【2024.1.27】
    CF1778FMaximizingRoot首先不难证明不操作根节点一定不优,因此我们考虑操作根节点的情况。现在我们的问题转化为了:最大化操作根节点前的整个树的节点权值的最大公约数。由于可能的最大公约数值只有\(\mathcal{O}(\sqrt{V})\)种。因此我们考虑将其压入状态进行动态规划。设......
  • .NetCore开发人员首选框架---Bridge(Abp-VNext + Vue3)
    bridge系统是基于Abp-VNext+Vue3开发的一套前后端分离的通用权限管理系统,不论是单体服务,还是微服务都可在此基础上自由扩展,此框架组合可以说是集成了.netcore在BS架构领域最前沿的技术,框架简介如下:##......
  • VMware Workstation反虚拟机检测设置方法
    以下方法测试适合16.X,非原创方法一:1.复制以下代码添加到wmx文件isolation.tools.getPtrLocation.disable=“TRUE”isolation.tools.setPtrLocation.disable=“TRUE”isolation.tools.setVersion.disable=“TRUE”isolation.tools.getVersion.disable=“TRUE”mon......
  • 利用vue-inline-svg实现将svg进行动态拆分
    构想是很好的,svg的优势在于矢量,可以随便实现异形控件就来说下这玩意怎么用吧先用npm导入(注意版本,第三方的玩意一版本般都比较新)vue的话是这个npminstallvue-inline-svg我是vue3所以用的版本不一样npminstallvue-inline-svg@next这个是npm那边的说明如果会看这个当......
  • C转C++速成浅入浅出系列——STL之bitset
    本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。bitset【bitset:位集,比特集】理解为比特集。特点是①只能存入0与1②小端存储(可参阅计算机组成原理知识,表现为按b[i]增序输出时会倒序输出)需提供头文件#include<bitset> 创建注:①存储时......
  • 报错AttributeError: can't set attribute (image.mode = desired_mode)
      docker容器中安装了pillow包,以及imageio[ffmpeg],运行程序时报错AttributeError:can'tsetattribute(image.mode=desired_mode),发现imageio==2.31.5版本与pillow==10.1.0版本不兼容导致报错,只需将pillow版本降低固定为10.0即可,最近pillow==10.2.0版本也发行了,这个不......
  • 无涯教程-Scala Sets函数
    ScalaSets是同一类型的不同元素的集合,换句话说,集合是不包含重复元素的集合。默认情况下,Scala使用不可变的Set。如果要使用可变Set,则必须显式导入scala.collection.mutable.Set类,如果要在同一集合中同时使用可变集和不可变集,则可以继续将不可变集称为Set,但可以将可变集称为......