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

Vue 监听属性(watch)

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue 监听属性(watch)

目录

监听属性

监听值改变

使用watch实现

区别

总结


监听属性

通过watch来响应数据的变化。

虽然大多数情况计算属性都可以满足需要,但有时还是需要使用侦听器。当需要在数据发生变化时执行异步操作或者开销较大的操作时,就需要自定义监听器。

监听值改变

还是使用过滤应用的示例来做演示。

先绑定一个input事件。

示例如下:

<div id="box">
    <input type="text" @input="handleInput" v-model="mytext">
    <ul>
        <li v-for="item in datalist" :key="item">
            {{item}}
        </li>
    </ul>
</div>

同步情况下 使用计算属性可以完成

但是异步情况下,如果请求后端需要使用method方法。

示例如下:

<script>
    let vm = new Vue({
        el:'#box',
        data: {
            mytext:'',
            datalist:['aa', 'bb', 'cc', 'dd', 'ee', 'de'],
            originList:['aa', 'bb', 'cc', 'dd', 'ee', 'de'],
        },
        methods:{
            handleInput() {
                console.log("input", this.mytext)

                // 模拟异步情况 使用2秒后响应
                setTimeout(() => {
                    this.datalist = this.originList.filter(item => item.includes(this.mytext))
                }, 2000)
            }
        }
    })
</script>

使用watch实现

去掉input上的input事件,然后增加watch。

示例如下:

<script>
    let vm = new Vue({
        el:'#box',
        data: {
            mytext:'',
            datalist:['aa', 'bb', 'cc', 'dd', 'ee', 'de'],
            originList:['aa', 'bb', 'cc', 'dd', 'ee', 'de'],
        },
        watch: {
            mytext(newVal) {
                console.log("改变了", newVal)

                // 模拟异步情况 使用2秒后响应
                setTimeout(() => {
                    this.datalist = this.originList.filter(item => item.includes(this.mytext))
                }, 2000)
            }
        }
    })
</script>

区别

1.data => 状态,被拦截

2.方法 ==》 事件绑定,逻辑计算。可以不用return,没有缓存

3.计算属性(重视结果)=》 解决模版过重问题,必须有return,只求结果,有缓存,同步。

4.watch(重视过程),监听一个值的改变。不用返回值,异步同步。

总结

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue 监听属性(watch)

相关文章:

  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2
  • 嵌入式工业级显示器在环保垃圾柜设备中发挥着至关重要的作用
  • Linux 实操篇 组管理和权限管理、定时任务调度、Linux磁盘分区和挂载
  • Linux-C/C++《C/9、信号:基础》(基本概念、信号分类、信号传递等)
  • 2025年archlinux tigervnc分辨率设置不生效的问题
  • Deepseek 与 ChatGPT:AI 浪潮中的双子星较量
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-loaders.py
  • 机器视觉--图像的运算(减法)
  • matplotlib无法显示中文的问题
  • HTML/CSS中子代选择器
  • AI赋能前端开发:告别加班,提升抗压能力
  • 【Python爬虫(29)】爬虫数据生命线:质量评估与监控全解
  • 软件测试与软件开发之间的关系
  • spring注解开发(配置bean的作用范围与生命周期)(3)
  • 游戏引擎学习第113天
  • DeepSeek 引领AI 大模型时代,服务器产业如何破局进化?
  • kafka-保姆级配置说明(producer)
  • 我的书包作文范文
  • java毕业设计之医院门诊挂号系统(源码+文档)
  • 第六届计算机信息和大数据应用国际学术会议(CIBDA 2025)
  • 营销型和展示型网站/360提交网站收录入口
  • 做毕业设计一个网站的数据来源/seo搜狗
  • 分销/谷歌seo推广培训班
  • 北京网站高端建设/刚刚北京传来重大消息
  • 做鞋子批发网站有哪些/个人博客模板
  • 免费软件无线看破解版/烟台seo