"watch" 监听器是一种在 Vue.js 中用于监视数据变化并执行相应操作的机制。它是 Vue 实例的一个选项,允许你监视指定的数据,并在数据变化时执行特定的逻辑。通常情况下,"watch" 监听器用于响应数据的变化,例如当数据发生变化时执行异步操作、触发其他方法或更新其他数据等。

简单写法:

watch: {
// 当数据发生变化时,触发执行
数据属性名(newValues, oldValue){
业务逻辑或者异步操作
}
}

完整写法:

"watch" 监听器的完整写法可以包含更多的选项和配置。比如:deep: true 对复杂类型深度检测;immediate: true 初始化时立即执行一次等。

watch: {
count: {
handler(newValue, oldValue) {
// 在这里执行逻辑操作
},
immediate: true,
deep: true
}
}

实例:传译器

实现功能:

主体部分是两个文本域,左侧接受输入,右侧实时更新以显示根据左侧输入内容生成的“传译”结果。

思路:

左侧文本域使用v-model绑定用户输入,右侧监听左侧输入,然后延时显示。

代码:

html:

<div id="app">
<h3>翻译</h3>
<textarea v-model="words" name="input" rows="10"></textarea>
<textarea name="output" rows="10">{{ result }}</textarea>
</div>

js:

<script>
const app = new Vue({
el: '#app',
data: {
words: '',
result: '',
timer: null
},
// 监听器:当数据发生变化,立马运行
// 防抖:延时操作
watch :{
words(newValues){
clearInterval(this.timer),
this.timer = setInterval(()=>{
this.result = newValues
},1000)
}
} })
</script>

补充:

实例中数据会频繁变化,每次数据变化就立即更新界面,会导致频繁的重绘,从而影响性能。通过设置定时器,可以将多次更新合并成一次,减少了界面的重绘次数,提高了性能。

setInterval()使用:

setInterval() 是 JavaScript 中的一个函数,用于在指定的时间间隔内重复执行指定的代码。它的基本语法如下:

setInterval(function, milliseconds);
  • function:要执行的函数或要执行的代码块。
  • milliseconds:时间间隔,以毫秒为单位。表示 function 被执行的时间间隔。

setInterval()方法会在每个间隔周期内重复执行指定的函数,直到 clearInterval() 方法被调用或页面被关闭。如果你想停止定时器的执行,可以使用 clearInterval() 函数。

Vue学习:9.watch监听器的更多相关文章

  1. vue学习之vue基本功能初探

    vue学习之vue基本功能初探: 采用简洁的模板语法将声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div> ...

  2. vue 学习笔记(二)

    最近公司赶项目,一直也没时间看 vue,之前看下的都快忘得差不多了.哈哈哈,来一起回顾一下vue 学习笔记(一)后,继续向下看嘛. #表单输入绑定 基础用法 v-model 会忽略所有表单元素的 va ...

  3. day 82 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  4. day 81 Vue学习一之vue初识

      Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js ...

  5. VUE学习总结

    VUE学习总结 文档:https://cn.vuejs.org/v2/guide/ Webstorm的一些常用快捷键:1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任 ...

  6. vue学习笔记(九)vue-cli中的组件通信

    前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...

  7. vue学习笔记(十)路由

    前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...

  8. day 81 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  9. day 80 Vue学习一之vue初识

    Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js框架 ...

  10. vue学习笔记(四)事件处理器

    前言 在上一章vue学习笔记(三)class和style绑定的内容中,我们学习了如何在vue中绑定class和style,介绍了常用的绑定方法,class的数组绑定和对象绑定以及style的数组绑定和 ...

随机推荐

  1. Facebook宕机背后,我们该如何及时发现DNS问题

    ​简介: 国庆期间,Facebook 及其旗下 Instagram 和 WhatsApp 等应用全网宕机,停机时间将近 7 小时 5 分钟,Facebook 市值损失 643 亿美元.针对Facebo ...

  2. [K8s] Docker 单节点部署 Rancher

    Rancher 是通过 Web 界面管理 k8s 集群的工具,本身支持使用 Docker 启动. 单节点部署只需要 docker run 即可,易用性高,高可用部署可以使用 nginx 反向代理机制. ...

  3. 7.deployment扩容-查看pod使用的CPU-统计ready状态节点数量

    官方文档:https://kubernetes.io/zh-cn/docs/tasks/run-application/scale-stateful-set/题目1: 将名为loadbalancer的 ...

  4. C++编程英语词汇

    abstract抽象的 abstraction抽象性.抽象件 access访问 access level访问级别 access function访问函数 adapter适配器 address地址 ad ...

  5. css的animate做一个信号动画

    html <div class="jump flex-fs fadeAndScaleIn"> <span></span> <span> ...

  6. 一分钟部署 Llama3 中文大模型,没别的,就是快

    前段时间百度创始人李彦宏信誓旦旦地说开源大模型会越来越落后,闭源模型会持续领先.随后小扎同学就给了他当头一棒,向他展示了什么叫做顶级开源大模型. 美国当地时间4月18日,Meta 在官网上发布了两款开 ...

  7. 自动生成robot自动化测试用例

    背景:java项目使用swagger管理接口,随着需求的开发接口也有增加,要从swagger界面中去查找出新增的接口是件很费时,效率很低的事情. 适用情况: java项目且适用swagger管理接口 ...

  8. 【YoloDeployCsharp】基于.NET Framework的YOLO深度学习模型部署测试平台

    1. 项目介绍    基于.NET Framework 4.8 开发的深度学习模型部署测试平台,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det.Seg.Pose.Obb ...

  9. 轻量级.net standard微信支付登录Nuget开源库

    我个人编写的库,在我个人网站,小程序等很多地方都在使用中,大家可以搜索小程序 什邡市宅猫君网络工作室 或者到我的网站 store.zhaimaojun.cn 去体验支付和登录效果. 本库主要实现了na ...

  10. iframe 高度设置为0时还有占位_iframe占位

    iframe是一个内联元素,默认是跟baseline对齐的,iframe后边有个看不见.摸不着的行内空白节点,空白节点占据着高度,iframe与空白节点的基线对齐,导致了div被撑开,从而出现滚动条, ...