当前位置: 首页 > news >正文

Vue--1.7watch侦听器(监视器)

作用:监视数据变化,执行一些业务逻辑或异步操作。

语法:

1.简单写法->简单类型数据,直接监视

    const app = new Vue({el: '#app',data: {words:''},watch:{words(newValue,oldValue){}}})
    const app = new Vue({el: '#app',data: {obj: {words: ''}},watch: {'obj.words'(newValue) {}}})

案例:翻译软件

<!doctype html>
<html><head><meta charset="utf-8">
</head><body><div id="app"><textarea rows="10" cols="40" v-model="obj.words"></textarea><textarea rows="10" cols="40" v-model="result"></textarea></div><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {obj: {words: ''},result: '',timer: null},watch: {'obj.words'(newValue) {clearTimeout(this.timer)//防抖this.timer = setTimeout(async () => {const res = await axios({url: 'https://applet-base-api-t.itheima.net/api/translate',params: {words: newValue}})this.result = res.data.data}, 300)}}})</script>
</body></html>

2.完整写法->添加额外配置项

1)deep:true对复杂类型深度监视

2)immediate:true初始化立刻执行一次handler方法

    const app = new Vue({el: '#app',data: {obj: {words: '',lang:''}},watch: {数据属性名:{deep:true,//深度监视immediate: true,//立即执行,一进入页面handler就立刻执行handler(newValue){}}}})

案例:翻译软件Pro

<!doctype html>
<html><head><meta charset="utf-8">
</head><body><div id="app">翻译成语言:<select v-model="obj.lang"><option value="english">英语</option><option value="franch">法语</option><option value="italy">意大利</option></select><br><br><textarea rows="10" cols="40" v-model="obj.words"></textarea><textarea rows="10" cols="40" v-model="result"></textarea></div><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {obj: {words: '',lang: 'english'},result: '',timer: null},watch: {obj: {deep: true,immediate: true,handler(newValue) {clearTimeout(this.timer)//防抖this.timer = setTimeout(async () => {const res = await axios({url: 'https://applet-base-api-t.itheima.net/api/translate',params: newValue})this.result = res.data.data}, 300)}}}})</script>
</body></html>
http://www.lryc.cn/news/186152.html

相关文章:

  • 序列:全序关系
  • 100M服务器能同时容纳多少人访问?
  • Javascript 笔记:函数调用与函数上下文
  • 【WebService】C#搭建的标准WebService接口,在使ESB模版作为参数无法获取参数数据
  • Sqlserver关于tempdb临时数据库文件个数的最佳实践
  • 【Java】微服务——微服务介绍和Eureka注册中心
  • C++ virtual 虚函数 虚基类
  • redis分布式秒杀锁
  • 【Redis】String内部编码方式
  • 川西旅游网系统-前后端分离(前台vue 后台element UI,后端servlet)
  • Paddle使用pyinstaller打包出错的解决方法
  • 【Java acm】特殊输入
  • 在Ubuntu 20.04搭建最小实验环境
  • 使用uwsgi部署Flask
  • Android平台实现lottie动画
  • JAVA练习百题之求矩阵对角线之和
  • MEM备考打卡
  • 短视频矩阵源码开发部署---技术解析
  • 百度小程序制作源码 百度引流做关键词排名之技巧
  • 【计算机组成 课程笔记】7.3 高速缓存 Cache
  • vscode搭建c/c++环境
  • macOS Sonoma 14.0(23A344) 正式版带 OpenCore 0.9.6 和 FirPE 三分区镜像
  • 神经网络(MLP多层感知器)
  • git与github的交互(文件与文件夹的上传)
  • Visual Studio常见编译错误记录
  • 如何应对数据安全四大挑战?亚马逊云科技打出“组合拳”
  • JavaScript——数据类型、类型转换
  • C位操作符
  • 【linux进程(三)】进程有哪些状态?--Linux下常见的三种进程状态
  • numString.charAt(i) - ‘0‘