我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue的watch是什么及怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue的watch是什么及怎么使用

本篇内容介绍了“vue的watch是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在vue中,watch用于监听data里面的数据是否被修改,一旦修改就可以执行一些其他的操作。watch是vue内部提供的一个用于侦听功能的通用的方法,可响应数据的变化,通过特定的数据变化驱动一些操作。

watch是用来做什么的?

Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

watch是什么?

一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个 property。文档传送

示例:

<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card></template> <script>export default {data() {return {name: '123'};}};</script> <style></style>

vue的watch是什么及怎么使用

watch的使用方法

第一种:常规用法

(1)把要监听的name值看作方法名,来进行监听。【第一种写法】

<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {name: '123'};},watch: {name(newVal, oldVal) {console.log('newVal', newVal);// 1234console.log('oldVal', oldVal);// 123}}};</script><style></style>

vue的watch是什么及怎么使用

(2)把要监听的name值看作对象,利用hanler方法来进行监听。【第二种写法】

<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {name: '123'};},watch: {name:{handler(newVal,oldVal){console.log('newVal',newVal); // 1234console.log('oldVal',oldVal); // 123}}}};</script><style></style>

以上两种写法是watch监听器的普通用法,这种用法有一个特点,就是当值第一次绑定的时候,不会执行监听函数,只有当值发生改变时才会执行。如果我们需要在最初绑定值的时侯,也执行监听函数,则就需要用到immediate属性。

下面,我们就往高级一点的用法上讲。

第二种:高级用法

比如,当父组件向子组件动态传值时,子组件props首次获取到父组件传来的默认值时,也需要执行函数,此时就需要将immediate属性设置为true,结合handler方法使用。

当设置immediate属性为true时,无论值是否发生改变,时刻都会监听;

当设置immediate属性为false时,常规用法,只有值发生改变才会监听。

<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {name: '123'};},watch: {name: {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);},immediate: true}}};</script><style></style>

立即执行:

vue的watch是什么及怎么使用

值改变时:

vue的watch是什么及怎么使用

第三种:超高级用法(deep 深度监听)

(1)监听普通变量的变化可以使用以上两种方法,但是要监听变量值是某对象的时候,则不起作用。

例如,我们监听form对象内部属性的变化,是监听不到的。

<template><el-card class="box-card"><el-input v-model="form.name" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {form: {name: '123'}};},watch: {form: {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);}}}};</script><style></style>

vue的watch是什么及怎么使用

则,从结果来看,我们没有看到任何的输出打印,所以普通的watch方法无法监听到对象内部属性的变化。

那么,我们该怎么办才能监听到对象内部属性的变化呢?

watch方法提供了一个deep属性(深度监听),该属性可以监听到对象内部属性的改变。

<template><el-card class="box-card"><el-input v-model="form.name" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {form: {name: '123'}};},watch: {form: {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);},deep: true}}};</script><style></style>

vue的watch是什么及怎么使用

设置deep: true 则可以监听到form的变化,如果form有较多属性的话,此时会给form的所有属性都会加上这个监听器,每个属性值的变化都会执行handler。

当deep属性值为true时,就可以监听到对象属性内部的改变;

当deep属性值为false时,则监听不到。

(2)如果只需要监听对象中的某一个属性值时,我们可以使用:字符串的形式监听对象属性

这个监听过程,不需要使用deep去深度监听,就可以监听对象中某个属性的变化。

<template><el-card class="box-card"><el-input v-model="form.name" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {form: {name: '123'}};},watch: {'form.name': {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);}}}};</script><style></style>

vue的watch是什么及怎么使用

第四种:扩展(监听数组)

(1)(一维、多维)数组的变化不需要深度监听

<template><el-card class="box-card"><el-input v-model="name" @input="inputFn" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {name: '123',arr1: [1, 2, 3],arr2: [1, 2, 3, [4, 5]]};},watch: {arr1(newVal, oldVal) {console.log('newVal1', newVal);console.log('oldVal1', oldVal);},arr2(newVal, oldVal) {console.log('newVal2', newVal);console.log('oldVal2', oldVal);}},methods: {inputFn(e) {this.arr1.push(e);this.arr2.push(e);}}};</script><style></style>

vue的watch是什么及怎么使用

(2)数组对象中对象属性变化监测需要使用deep:true深度监听,多少层内产生变化都可以监测到。

<template><el-card class="box-card"><el-input v-model="name" @input="inputFn" style="width: 30%;"></el-input></el-card></template><script>export default {data() {return {name: '123',arr1: [{id: 1,sex: 11}],arr2: [{id: 2,sex: 22,list: [{id: 3,sex: 33}]}]};},watch: {arr1: {handler(newVal, oldVal) {console.log('newVal1', newVal);console.log('oldVal1', oldVal);},deep: true},arr2: {handler(newVal, oldVal) {console.log('newVal2', newVal);console.log('oldVal2', oldVal);},deep: true}},methods: {inputFn(e) {this.arr1[0].sex = e;this.arr2[0].list[0].sex = e;}}};</script><style></style>

vue的watch是什么及怎么使用

vue的watch是什么及怎么使用

vue的watch是什么及怎么使用

“vue的watch是什么及怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue的watch是什么及怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue的watch是什么及怎么使用

本篇内容介绍了“vue的watch是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在vue中,watch用于监听data里面的
2023-07-04

vue的watch是做什么的

在vue中,watch用于监听data里面的数据是否被修改,一旦修改就可以执行一些其他的操作。watch是vue内部提供的一个用于侦听功能的通用的方法,可响应数据的变化,通过特定的数据变化驱动一些操作。
2023-05-14

Vue中watch怎么使用

这篇文章主要介绍了Vue中watch怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中watch怎么使用文章都会有所收获,下面我们一起来看看吧。一、API介绍watch(WatcherSource,
2023-07-04

Vue的$watch方法怎么使用

这篇文章主要介绍了Vue的$watch方法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue的$watch方法怎么使用文章都会有所收获,下面我们一起来看看吧。代码如下:// 键路径vm.$watch(
2023-07-04

vue的watch属性怎么使用

这篇文章主要介绍“vue的watch属性怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue的watch属性怎么使用”文章能帮助大家解决问题。watch是监视属性。在vue中,可以通过wat
2023-07-04

Vue中的watch、watch和computed的区别是什么

本文小编为大家详细介绍“Vue中的watch、watch和computed的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中的watch、watch和computed的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路
2023-07-02

vue的$refs是什么及怎么使用

这篇文章主要讲解了“vue的$refs是什么及怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的$refs是什么及怎么使用”吧!在vue中,$refs是一个对象,持有注册过ref
2023-07-04

Vue computed与watch怎么使用

这篇文章主要讲解了“Vue computed与watch怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue computed与watch怎么使用”吧!computed用法响应式缓存
2023-07-05

vue中watch是什么属性

watch是监视属性。在vue中,可以通过watch属性来监视某个属性的变化,当这个属性发生变化时,可以执行一些操作:1、当监视属性所监视的属性发生变化的时候,回调函数就会自动调用,并且执行相关的操作;2、监视属性所监视的属性要存在,才能产生作用。监视属性有两种写法“new Vue({watch:{}})”和“vue实例化对象.$watch('属性名'回调函数)”。
2023-05-14

vue的v-model是什么及怎么使用

这篇文章主要介绍了vue的v-model是什么及怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue的v-model是什么及怎么使用文章都会有所收获,下面我们一起来看看吧。v-model是什么v-mod
2023-07-04

怎么使用Vue的watch侦听器

小编给大家分享一下怎么使用Vue的watch侦听器,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!侦听器watch 函数名就是要侦听的元素的名字传入的参数第一个是变化后的新值newval,第二个是变化前的旧值oldval 格
2023-06-22

Vue中observable是什么及怎么使用

这篇文章主要介绍“Vue中observable是什么及怎么使用”,在日常操作中,相信很多人在Vue中observable是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue中observabl
2023-07-04

Vue插槽是什么及怎么使用

今天小编给大家分享一下Vue插槽是什么及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是插槽插槽就是子组件中的提
2023-07-05

vue怎么使用watch监听属性

这篇文章主要介绍了vue怎么使用watch监听属性的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用watch监听属性文章都会有所收获,下面我们一起来看看吧。基本用法Vue watch最重要的使用场景
2023-06-30

怎么在vue中使用 Watch和Computed

本篇文章给大家分享的是有关怎么在vue中使用 Watch和Computed,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。01. 监听器watch(1)作用watch:用于监听d
2023-06-15

Vue插槽Slot的作用是什么及怎么使用

本篇内容介绍了“Vue插槽Slot的作用是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!插槽Slot插槽Slot的作用初识插槽
2023-07-04

vue前端重构computed及watch组件通信怎么使用

这篇文章主要介绍“vue前端重构computed及watch组件通信怎么使用”,在日常操作中,相信很多人在vue前端重构computed及watch组件通信怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录