"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. 从 Flink Forward Asia 2021,看Flink未来开启新篇章

    ​简介:本文将对FFA Keynote议题作一些简单的归纳总结,感兴趣的小伙伴们可以在FFA官网[2]找到相关主题视频观看直播回放. ​ 作者 | 梅源(Yuan Mei) 来源 | 阿里技术公众号 ...

  2. 【产品动态】解读Dataphin流批一体的实时研发

    ​简介: Dataphin作为一款企业级智能数据构建与管理产品,具备全链路实时研发能力,从2019年开始就支撑可集团天猫双11的实时计算需求,文章将详细介绍Dataphin实时计算的能力. 背景 每当 ...

  3. Python:Lambda

    Lambda >>> (lambda: 3)() # Using a lambda expression as an operator in a call exp. 经过查阅资料,理 ...

  4. 从零开始写 Docker(十二)---实现 mydocker stop 停止容器

    本文为从零开始写 Docker 系列第十二篇,实现类似 docker stop 的功能,使得我们能够停止指定容器. 完整代码见:https://github.com/lixd/mydocker 欢迎 ...

  5. SuperSonic简介

    SuperSonic融合ChatBI和HeadlessBI打造新一代的数据分析平台.通过SuperSonic的问答对话界面,用户能够使用自然语言查询数据,系统会选择合适的可视化图表呈现结果. Supe ...

  6. ITIL4 服务价值系统(SVS):一场服务管理的革新之旅

    在这个数字化时代,每一家企业都在追求高效的服务管理和卓越的客户体验.今天,我们就来聊一聊ITIL4中的服务价值系统(Service Value System, SVS)--一个让服务管理变得更加直观和 ...

  7. Linux备忘手册

    资料来源:技术胖 jspang.com 下载linux学习路径:https://newimg.jspang.com/linux-image01.png Linux备忘手册: 百度网盘 链接:https ...

  8. cesium教程6-用entity绘制点线面label和billboard广告牌

     注意:billboard显示的图片是立体的,会跟随角度而变化的. pinBuilder.fromText()用于创建自定义地图图钉 完整示例代码: <!DOCTYPE html> < ...

  9. Splashtop远程桌面再次增强:支持4K视频流

    远程桌面工具,主流的有10款总有,国内用的比较多的有teamviewer.Splashtop.向日葵等.几款软件各有千秋,其中Splashtop最大的特性就是快速.流畅.产品无敌,运营佛系,哈哈.下面 ...

  10. Vue3开发新范式,不用`ref/reactive`,不用`ref.value`

    什么是Cabloy-Front? Cabloy-Front 是一款支持 IOC 容器的 Vue3 框架.不用ref/reactive,不用ref.value,不用pinia 与UI库的配合 Cablo ...