Vue中的侦听器:数据变化的秘密揭示

一、侦听器:vue中想监听数据的变化

🚀(一)侦听器watch

  • 如何侦听到某个变量值改变呢?使用watch配置项
  • 🚧🚧🚧watch:可以侦听到data/computed属性值的改变。
  • 语法:
watch:{"被侦听的属性名"(newVal, oldVal){}
}
  • 快速入门小案例
<template><div><input type="text" v-model="name" /><!-- 我们需要侦听v-model="name" --></div>
</template><script>export default{data(){return{name:""}},watch:{name(newVal, oldVal){//当前msg变量的值改变出发函数console.log(newVal, oldVal);}}
}
</script>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

🚀(二)监听list变化, 同步到本地案例

  • 我们可以通过上篇的文章⛽Vue成绩案例实现添加、删除、显示无数据、添加日期、总分均分以及数据本地化等功能⛽,通过使用侦听器来实现本地数据化存储。简化每次都需要在方法里面添加
    -🚧🚧🚧 简单写法:侦听简单数据类型score,获取复杂数据类型list(数量变化)
<script>
export default {watch:{list(newval,oldval){//newval:变化后的值,oldval:变化前的值,一般不用,可以删除// console.log(this.list)//1.此时此刻的值,只要侦听器侦听到数据变化,就会打印;localStorage.setItem("list",JSON.stringify(this.list));// 2.关键:新增、删除里面注释掉本地化的方法就行}}
};
</script>
  • 新增一个按钮,用于用于模拟编辑
<div><button @click="change">把第一科 分数随机变化</button>
</div><script>
export default {methods: {//只是变化第一科的成绩,用于模拟编辑//  操作算改变数据listchange(){this.list[0].score = Math.floor(Math.random()*100);}},
</script>
  • 上面虽然页面更改了第一科的数据,但是没有存储到本地。🚧【是因为没有使用侦听器完整的写法】🚧
    在这里插入图片描述
  • 🚧🚧🚧使用完整写法的侦听器:
watch: {// 完整写法:list:{deep:true,//deep对复杂数据,深度侦听(数量、数据内部变化都能侦听到!)不仅会监听地址的变化,还会监听对象内部属性的变化handler(){ //handler:操作,当数据变化时,执行那个函数!localStorage.setItem("list", JSON.stringify(this.list));},immediate:true,//immediate:是否让上面的handler在组件加载完成后立马先执行一下?代表页面一加载,会先执行一次处理程序}}

在这里插入图片描述

🚀(三)侦听器:深度侦听和立即执行

  • 如果监听的是复杂数据类型,需要深度监听,需要指定deep为true,需要用到监听的完整的写法。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29436.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS目录详解

在centos中&#xff0c;最顶层的目录称作根目录&#xff0c; 用/表示。/目录下用户可以再创建目录&#xff0c;但是有一些目录随着系统创建就已经存在&#xff0c;接下来重点介绍几个常用目录。 /bin&#xff08;binary&#xff09;包含了许多所有用户都可以访问的可执行文件&a…

6.6Jmeter远程调度Linux机器Jmeter测试

1、配置Agent和启动 1.1、打开jmeter/bin目录下的jmeter.properties 1、server_port1099取消注释 2、remote_hosts127.0.0.1 改为remote_hosts127.0.0.1:1099 或者是remote_hostsAgent机的ip:1099 3、server.rmi.localport1099 4、server.rmi.ssl.disablefalse改为true&#x…

【问题总结】基于docker-compose实现nginx转发redis

目录&#xff1a; 文章目录 需求简介&#xff1a;Q1: nginx的http模块和http模块有什么不同Q2: 可以都使用stream模块进行配置吗 Docker环境下如何转发1 修改docker-compose2 修改nginx.conf3 测试连接 需求简介&#xff1a; 需要在192.168.3.11的ngnix上&#xff0c;转发192.…

T5模型: Transfer Text-to-Text Transformer(谷歌)

&#x1f525; T5由谷歌发表于2019&#xff0c;《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》&#xff0c;最终版本发布在&#xff1a;JMLR。 一句话总结T5: 大一统模型&#xff0c;seq2seq形式完成各类nlp任务&#xff0c;大数据集…

易查分怎么上传成绩?

当使用易查分制作查询系统时&#xff0c;许多老师可能对于如何上传成绩感到困惑。有时候&#xff0c;导入成绩到易查分系统后&#xff0c;信息可能无法完全显示&#xff0c;而且也很难找到错误的原因。因此&#xff0c;今天我将与老师们分享一下易查分上传成绩的方法。这个技巧…

【PDFBox】PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档

这篇文章&#xff0c;主要介绍PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档。 目录 一、PDFBox操作文本 1.1、读取所有页面文本内容 1.2、读取指定页面文本内容 1.3、写入文本内容 1.4、替换文本内容 &#xff08;1&#xf…

SpringCloud系列(十六)[分布式搜索引擎篇] - DSL 查询及相关性算分的学习 (部分)

在SpringCloud系列&#xff08;十五&#xff09;[分布式搜索引擎篇] - 结合实际应用场景学习并使用 RestClient 客户端 API这篇文章中我们已经对 RestClient 有了初步的了解, 并且已经将一些数据进行了存储, 但是这并不是我们学习 ElasticSearch 的目的, ElasticSearch 最擅长的…

C#鼠标拖拽,移动图片实例

最近工作需要做一个鼠标可以拖拽移动图片的功能。 写了几个基本功能&#xff0c;勉强能用。这里记录一下。欢迎大神补充。 这个就是完成的功能。 下边的绿色是一个pictureBox&#xff0c;白色框也是一个pictureBox&#xff0c;他们二者是子父级关系。 绿色是父级&#xff0c…

Java 常用的重构技巧指南 v1.0

前段时间&#xff0c;leader 在 review 代码的时候发现了代码中 存在的一部分的问题&#xff0c;导致 代码的复杂度太高了&#xff0c;包括大部分的sql 都是属于慢sql &#xff0c;还是在建立了索引的情况下 , 代码的流程过于臃肿&#xff0c;而且本人编码的习惯&#xff0c;习…

ubuntu打开usb摄像头

文章目录 前言一、识别 usb 摄像头二、安装应用程序显示摄像头捕捉到的视频1、使用应用程序茄子&#xff08;cheese&#xff09;2、运行 cheese 捕捉视频 总结 前言 记录一下解决在 Linux 下打开 usb 摄像头界面黑屏的问题。 一、识别 usb 摄像头 1、保持在 ubuntu 界面&…

(四)「消息队列」之 RabbitMQ 路由(使用 .NET 客户端)

0、引言 先决条件 本教程假设 RabbitMQ 已安装并且正在 本地主机 的标准端口&#xff08;5672&#xff09;上运行。如果您使用了不同的主机、端口或凭证&#xff0c;则要求调整连接设置。 获取帮助 如果您在阅读本教程时遇到问题&#xff0c;可以通过邮件列表或者 RabbitMQ 社区…

ylb-项目简介

1、各模块服务功能 注&#xff1a;其部分实体类、接口、mapper文件由MyBatis逆向工程生成。 2、Maven管理&#xff08;多模块&#xff0c;继承和聚合&#xff09; 2.1 parent模块 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"…