• 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用法介绍

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了详解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用法介绍

相关文章

  • 解析关于Thinkphp5复合型缓存的使用问题
  • 如何解决php md5生成16位出现乱码问题
  • 去除csdn必须登录复制代码限制JS脚本
  • PhotoShop制作魔幻霓虹火焰字效果的教程
  • Mysql报错“Incorrect key file for table” 数据库表显示“使用中”解决办法
  • 织梦DEDECMS无简略标题显示完整标题的实现代码
  • Photoshop结合AI制作动感的立体字
  • 织梦CMS二次开发后台添加设置LOGO的功能
  • Illustrator制作电视台标志
  • 实例详解Ajax+php数据交互并且局部刷新页面

文章分类

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

最近更新的内容

    • PHPCMS模型字段单选复选只能填写不能使用SQL语句查询
    • PHP使用PHPAnalysis提取关键字中文分词的方法是什么
    • 符合W3C标准的网页等于做了百分之五十的SEO工作
    • 浅谈bootstrap table分页的实现两种方式
    • phpMyadmin怎么使用空密码登入
    • PS打造纸张撕边效果
    • Thinkphp中如何按照周来实现将数据分类
    • 详解Composer+Git怎么创建 “服务类库”
    • 宝塔2.x面板文件不小心被误删或损坏的修复方法
    • PS简单制作蓝色梦幻的透明2012字效壁纸效果教程

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

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