Vue的计算属性computed

定义
通过已有属性计算生成一个新的组合属性。
原理
底层借助了Object.defineproperty方法提供的getter和setter来实现。
性质
计算属性的代码内容是方法,但在Vue中它是属于Vue的一个属性。

计算属性大多数情况下是不会对其修改的,所以只考虑读取不考虑更改时set方法可以不写,进而只有get方法,这时的计算属性就可以进行简写

监听属性watch

监听属性watch
1 当被监听的属性发生变化时 回调函数自动调用 进行相关的操作
2 监听的属性必须存在才能够进行监听
3 监听两种写法
(1) new Vue时直接书写watch配置
(2) 通过(vue实例名. w a t c h ( ′ 监 听 的 属 性 名 ′ ) 此 处 实 例 名 为 v m , 注 意 , 此 处 括 号 里 的 属 性 名 需 要 加 引 号 ) v m . watch('监听的属性名') 此处实例名为vm,注意,此处括号里的属性名需要加引号) vm. watch(′监听的属性名′)此处实例名为vm,注意,此处括号里的属性名需要加引号)vm.watch(‘监听的属性名’)


运行到浏览器:

点击’ 改变日期 按钮观察控制台变化


immediate属性控制监听中的handler是否在初始化就会执行,默认为false,如果更改为true,则handler在vue实例初始化时就会执行

此处旧值处为undefined,因为初始化时就会加载,所以直接将原有值当做新值,原有的值此处当做不存在处理

深度监视

当属性值中还有嵌套的属性值时,此时还可以监听吗? 下面来试试



此时我们点击x++按钮和y++按钮更改x和y的值,因为上面定义时,x和y是num的属性,我们更改x和y观察num有没有被监听到更改:

此时num内部属性虽然更改了,但是vue却没有监听到num的更改,
此时就需要在监听中书写下一层级的监听

此时再在页面中更改x和y的值


此处可以直接这样写:


深度监听:
(1) vue中的watch默认不检测对象内部值得改变(只监听一层)
(2) 配置deep:true 可以开启检测对象内部值得改变(多层)
(3) vue自身可以监听对象内部值得改变 但是vue提供的watch默认不可以
(4) 使用watch时根据数据的具体结构 决定是否采用深度监听

监听简写:
当我们要监听的数据只需要handler配置时,可以进行监听的简写:

初始化实例后的简写方式:

computed和watch区别:
1 computed能完成的功能 watch都可以完成
2 watch能完成的功能 computed不一定可以完成 比如 watch可以进行异步操作(如定时操作)
两个重要小原则:
1 所有被vue管理的函数 最好写成普通函数 这样this的指向才会是vue实例或组件实例对象
2 所有不被vue管理的函数(定时器的回调函数 ajax的回调函数 Promise的回调函数) 最好写成箭头函数=>(),这样this的指向才是vue实例或组件实例对象

Vue的计算属性computed和监听属性watch相关推荐

  1. vue计算属性computed与监听属性watch的基本使用

    目录 Vue.js 计算属性 Vue.js 监听属性 Vue.js 计算属性 计算属性关键词: computed. 计算属性在处理一些复杂逻辑时是很有用的. 反转字符串的示例 <!DOCTYPE ...

  2. vue计算属性computed和侦听属性watch的用法和区别

    计算属性computed是基于响应式进行缓存,所以在执行的时候效率高,且只执行一次,从缓存读取,除非data里面的数据有更改才重新调用.注意:计算属性里面必须要ruturn,否则无法拿到结果.计算属性 ...

  3. Vue计算属性和监听属性

    一.计算属性 计算属性关键词: computed.计算属性在处理一些复杂逻辑时是很有用的. 可以看下以下反转字符串的例子: <div id="app">{{ messa ...

  4. Vue 计算属性与监听属性

    前面的话 模板内的表达式常用于简单的运算,当其过长或逻辑复杂时,会难以维护.这篇文章将介绍计算属性与监听属性去解决该问题. 计算属性 [什么是计算属性?] 首先,来看一个字符串反转的例子: <d ...

  5. Vue的计算属性与监听属性

    目录 一.计算属性 1.计算属性需要定义在computed选项中. 2.getter和setter. 3.计算属性缓存. 二.监听属性 一.计算属性 1.计算属性需要定义在computed选项中. 当 ...

  6. class07:表单、计算属性、watch监听

    这里写目录标题 一.表单 1. 表单输入绑定 二.配置对象 1. 计算属性 2. computed 和 methods 的区别 3. watch监听 a. 单一属性监听 b. 监听对象中的属性 c. ...

  7. vue 组件属性监听_Vue.js 监听属性

    # Vue.js 监听属性 本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化: ~~~ Vue 测试实例 - 菜鸟教程(runoob.com) ...

  8. Vue.js:监听属性

    ylbtech-Vue.js:监听属性 1.返回顶部 1. Vue.js 监听属性 本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化: 实例 & ...

  9. Vue如何正确使用watch监听属性变化

    Vue中可以使用监听器监听属性的变化,并根据属性变化作出响应.但一旦涉及到复杂数据的监听(如Object,但数组一般不需要,因为Vue针对数组做了特殊处理)时就比较复杂了,本文解释了使用watch监听 ...

最新文章

  1. jxl导入Excel文件抛出java.lang.StringIndexOutOfBoundsException异常
  2. UA SIE545 优化理论基础1 例题3 凸多面体的表示与线性规划
  3. VS代码提示不出现或者提示变成英文或者各种奇葩问题的解决
  4. 学习Docker从小白到入门
  5. Linux标准目录配置(转自鸟哥)
  6. qt乱码Could not decode“xxx.cpp“ with “UTF-8“-encoding.Editing not possible问题处理
  7. .NET5实战千万并发,性能碾压各版本,云原生时代,.NET5为王!
  8. 第十四节: EF的三种模式(四) 之 原生正宗的 CodeFirst模式的默认约定
  9. 17.立体匹配——动态规划公式(Dynamic Programming Formulation),二维网格上的相干立体_4
  10. Python编写人机对战小游戏(抓狐狸)(2)
  11. aop java 接口_Spring AOP实现接口验签
  12. Apple Watch,其实是个老司“机”
  13. latex tabular自动换行
  14. 光缆故障定位检测仪使用方法简介
  15. twaver html5 2d demo,TWaver 2D+GIS+3D的试用和在线Demo
  16. 什么是 Web 3.0:面向未来的去中心化互联网
  17. 论文写作——如何作图(visio/ppt+Adobe Acrobat Pro)
  18. matlab201a教程,实验6 - 数媒201郭凯妮的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. 成为用友ISV优选伙伴,迈丹科技8个月经历了一次脱胎换骨
  20. JavaScript(一)——什么是JavaScript

热门文章

  1. vue脚手架 编译速度慢95% emitting CopyPlugin
  2. 水果店文案:水果柿子文案高级感,水果柿子发圈文案
  3. 创业者不能盲目的跟风,不然结局很凄凉
  4. 微信小程序(登录、分享、支付)
  5. 《大明王朝1566》台词摘录
  6. 赶紧收藏!网上疯传的150个ChatGPT「超级提问模型」,都在这里了
  7. 入门到精通|有哪些相见恨晚的高效图表制作小技巧?
  8. 拼多多引流大法,日引百人太简单
  9. 计算智能——K-均值算法
  10. 解决fileReader读取文件乱码