• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 详解vue中watch如何使用?watch用法介绍

详解vue中watch如何使用?watch用法介绍

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了详解vue,watch如何使用,watch用法介绍等相关知识,希望对您有所帮助

详解vue中watch如何使用?watch用法介绍


在vue中,使用watch来响应数据的变化。watch的用法大致有三种。下面代码是watch的一种简单的用法:

<input type="text" v-model="cityName"/>
new Vue({    el: '#root',    data: {        cityName: 'shanghai'    },    watch: {        cityName(newName, oldName) {      // ...    }    } })

直接写一个监听处理函数,当每次监听到 cityName 值发生改变时,执行函数。也可以在所监听的数据后面直接加字符串形式的方法名:

watch: {    cityName: 'nameChange'}

immediate 和 handler

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

比如当父组件向子组件动态传值时,子组件props首次获取到父组件传来的默认值时,也需要执行函数,此时就需要将immediate设为true。

new Vue({    el: '#root',    data: {        cityName: ''    },    watch: {        cityName: {            handler(newName, oldName) {                // ...                  },            immediate: true        }    } })

监听的数据后面写成对象形式,包含handler方法和immediate,之前我们写的函数其实就是在写这个handler方法;

immediate表示在watch中首次绑定的时候,是否执行handler,值为true则表示在watch中声明的时候,就立即执行handler方法,值为false,则和一般使用watch一样,在数据发生变化的时候才执行handler。

deep

当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,只有data中的数据才能够监听到变化,此时就需要deep属性对对象进行深度监听。

<input type="text" v-model="cityName.name"/>
new Vue({    el: '#root',    data: {        cityName: {id: 1, name: 'shanghai'}    },    watch: {        cityName: {            handler(newName, oldName) {      // ...    },            deep: true,            immediate: true        }    } })

设置deep: true 则可以监听到cityName.name的变化,此时会给cityName的所有属性都加上这个监听器,当对象属性较多时,每个属性值的变化都会执行handler。如果只需要监听对象中的一个属性值,则可以做以下优化:使用字符串的形式监听对象属性:

watch: {    'cityName.name': {        handler(newName, oldName) {      // ...      },        deep: true,        immediate: true    }}

这样只会给对象的某个特定的属性加监听器。

数组(一维、多维)的变化不需要通过深度监听,对象数组中对象的属性变化则需要deep深度监听。



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解vue中watch如何使用?watch用法介绍

相关文章

  • 2022-04-29微信小程序反编译提取源代码方法
  • 2022-04-29Photoshop制作颓废效果的金属立体字教程
  • 2022-04-29外链和内链的设计你知道多少呢
  • 2022-04-29Laravel实现谷歌点图验证码【推荐】
  • 2022-04-29介绍thinkphp5框架中的hook机制
  • 2022-04-29Photoshop详细解析置换滤镜的工作原理
  • 2022-04-29使用织梦DdedCMS添加文章时同时更新所有单页面的
  • 2022-04-29用CSS3美化半个字符巧妙方法
  • 2022-04-29dedecms页面获取会员状态的代码
  • 2022-04-294种移动端适配方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop CS6制作3D文字的片头动画教程
    • Dede网站布局搜索引擎优化优化技能汇总
    • WordPress主题纯代码实现禁止某些用户账号登录
    • 解析如何进行Laravel表单验证分层设计和验证场景应用
    • PhotoShop制作沙漠里的3D立体残破钢筋文字教程
    • PS制作金属字教程
    • 小程序swiper轮播CSS3动画及跳转到指定swiper-item的使用
    • navicat出现1045错误怎么解决
    • YII怎么输出sql语句?
    • 浅谈小程序跨页面之间通信的几种方式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有