当前位置: 首页 > news >正文

Vue中watch和computed

首先这里进行声明,这个讲的是vue2的内容,在vue3发生了什么变动与此无关

这里是官网:
https://v2.cn.vuejs.org/v2/guide/installation.html

computed => 计算属性

watch => 侦听器(也叫监视器)

其区别如下:

1.computed能完成的功能,watch都能完成
2.watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作

两个重要的小原则:
1.所被Vue管理的函数,最好携程普通函数,这样this的指向才是vm或组件实例对象
2.所有不被Vue所管理的函数(定时器的回调函数,ajax的回调函数等,promise的回调函数),最好写成箭头函数,这样this的指向才是vm或组件实例对象

官网是这么写的:

Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性。当你有一些数据需要随着其它数据变动而变动时,你很容易滥用 watch——特别是如果你之前使用过 AngularJS。然而,通常更好的做法是使用计算属性而不是命令式的 watch 回调

var vm = new Vue({el: '#demo',data: {firstName: 'Foo',lastName: 'Bar',fullName: 'Foo Bar'},watch: {firstName: function (val) {this.fullName = val + ' ' + this.lastName},lastName: function (val) {this.fullName = this.firstName + ' ' + val}}
})

上面代码是命令式且重复的。将它与计算属性的版本进行比较:

var vm = new Vue({el: '#demo',data: {firstName: 'Foo',lastName: 'Bar'},computed: {fullName: function () {return this.firstName + ' ' + this.lastName}}
})

很明显可以看出,官网更加推荐计算属性的使用

http://www.lryc.cn/news/36992.html

相关文章:

  • 华为鲲鹏+银河麒麟v10 安装 docker-ce
  • Lambda,Stream,响应式编程从入门到放弃
  • C语言枚举使用技巧
  • 保姆级使用PyTorch训练与评估自己的EfficientNetV2网络教程
  • 【9】基础语法篇 - VL9 使用子模块实现三输入数的大小比较
  • 成功的项目管理策略:减少成本,提高质量
  • centos 7下JDK8安装
  • datatables.js中文项目使用案例
  • Hadoop小结
  • 经典卷积模型回顾14—vgg16实现图像分类(tensorflow)
  • #Vue2篇:keep-alive的属性和方法
  • webpack指南(项目篇)——webpack在项目中的运用
  • unicode字符集与utf-8编码的区别,unicode转中文工具、中文转unicode工具(汉字)
  • 3D数学系列之——再谈特卡洛积分和重要性采样
  • Python错误 TypeError: ‘NoneType‘ object is not subscriptable解决方案汇总
  • VMware空间不足又无法删除快照的解决办法
  • 类和对象(一)
  • Java 不同路径
  • 【SAP PO】X-DOC:SAP PO 接口配置 REST 服务对接填坑记
  • 最新研究!美国爱荷华州立大学利用量子计算模拟原子核
  • 零入门kubernetes网络实战-22->基于tun设备实现在用户空间可以ping通外部节点(golang版本)
  • web安全——Mybatis防止SQL注入 ssrf漏洞利用 DNS污染同源策略
  • smp_init过程解析
  • 判断推理之逻辑判断
  • 2023金三银四常见Handler面试总结,附带答案
  • 为什么机器人操作系统ROS1、ROS2这么难学
  • day01
  • 第四十章 linux-并发解决方法五(顺序锁seqlock)
  • 【SPSS】交叉设计方差分析和协方差分析详细操作教程(附案例实战)
  • playwright--核心概念和Selector定位