| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Vue侦听器 -> 正文阅读 |
|
[JavaScript知识库]Vue侦听器 |
今天我们来讲述一下Vue侦听器 所谓侦听器就是用来侦听数据有没有变化,一旦有变化就调用函数。 但是要注意:侦听器本质上是一个函数,如果要监听哪一个数据的变化,就把那个数据作为函数名 Vue侦听器提供了两种语法格式。一种是方法格式的写法,另一种是对象格式的写法。今天我们先详细的讲解方法格式: ?方法格式的侦听器它的语法是:在和data、methods这些平级的位置写一个watch。 方法格式的监听器有两个缺点: 1)首次进入浏览器的时候,无法立即触发一次侦听器 2)如果侦听的是一个对象,对象里面的数据发生了变化,并不会出发侦听器 我们先来看一下它的基本结构
接下来我们用实际案例来说明一下它的基本用法
?这边是用@click来绑定事件,然后用插值语法渲染了结果。在可以看到结果基础上,我们用监听器来监听数据是否变化,就在图片右侧我们可以看到原来未改变前的数据 然后我们来说明一下如何在数组中使用监听器:数组是引用类型,存在比较复杂的侦听规则。 ? ? 从理论上说,修改一个数组的内容,比如修改数组中某个元素的值,或者给数组添加新的元素,都不会修改数组本身的地址为此,Vue.js对数组做了特殊处理,使得使用标准的数组操作方法对数组所做的修改,都可以被侦听到。 Vue不能检测以下数组的变动: ? ? a.当你利用索引值直接设置一个数组时,例如:vm.items[indexOfItem] = newValue ? ? b.当你修改数组的长度时,例如:vm.items.length = newLength 但是使用标准方法修改数组可以被侦听到? ? ?push() 尾部添加 ? ? pop()尾部删除 ? ? unshift()头部添加 ? ? shift()头部删除 ? ? splice()删除、添加、替换 ? ? sort()排序 ? ? reverse()逆序 ? ? (Vue将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新,以上就是被包裹的方法)。示例如下:
?在这边我是点击了第一个按钮和第三个按钮我们可以明显看到数据改变,并且后台也监听到了数据的改变。 我们这边做一个总结:如果彻底替换为一个新数组,那么可以被侦听到。如果使用了push()等标准的数组操作方法,那么可以被侦听到。如果直接修改数组的元素,那么无法被侦听到。 (解决方法:使用$set()方法修改元素的值。Vue3语法。) 不要使用length属性来修改数组长度,而改用其他标准方法显示数组长度的变化。 当然这些都是基本使用,我们现在来看一下如何创建一个完整的监听器:
这其中我们要知道只要开启深度监听,只要对象中任何一个属性变化了,都会触发对象的侦听器。 最后我们稍微提点一下对象格式监听器 对象格式的侦听器对象格式侦听器和方法格式差不多还是直接上代码示例:
对象格式的侦听器有两个优点: 1)可以通过immediate属性,控制侦听器自动触发一次(默认是false) 2)可以 通过deep属性,控制侦听器深度监听到对象中每一个属性的变化 对象格式就先提一笔,再下一篇我们会详细讲解 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 15:39:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |