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

【VUE复习·4】计算属性computed:原理、完整写法(不常用)、与 methods 的区别、简写(最常用)、应用案例!

总览

1.简介计算属性
2.computed 与 methods 的区别
3.computed 的简写(不修改计算属性,只显示)
4.经典应用场景

一、计算属性

1.为什么需要计算属性?

首先,如果我们要写一个插值语法,而 {{ }} 内的内容,是一个经过计算的值,那么按照原本 JS 的写法,应该是这样的:

在这里插入图片描述

但是在 VUE 中,不推荐这么写。这样看起来很乱。所以我们可以使用 methods 或者 computed 来实现,以降低耦合性:

在这里插入图片描述

2.具体案例

计算属性被称为“属性”,但它不被放在 data 中,而是有专门的地方存放:computed: {}。

有一个比较难以理解的点。一个计算属性并没有死数据,它只是一个容器,用于存放经过计算后的值。

我们能够理解,如果我们更改了计算属性(比如上面的 fullName)依赖的属性(比如上面的 firstName 和 LastName)那么计算属性自己也会发生改变(使用 get(){})这件事。

那如果我们直接修改计算属性呢?我们要如何让这种更改下发到计算属性依赖的基本属性上去?答案是使用 set(value){}。

在这里插入图片描述

如果我们直接更改 fullName,就会让这种变化 按照我们制定的规律下发到 组成 fullName 的基础属性上去。

在这里插入图片描述

二、computed 与 methods 的区别

1.效率方面

computed 内置了 缓存机制,让重复的值不会被重复计算,只被计算一次,就能够反复不经过再次计算直接调用。

2.调试方便

2.1 写在 method 中时,我们无法直接查看这个计算后的值是什么:

在这里插入图片描述

2.2 写在 computed 中时,我们能够直接在调试器上看到它:

在这里插入图片描述

三、computed 的简写(不修改计算属性,只显示)

1.简写示例

在这里插入图片描述

2.调用方式

我们直接使用即可:{{ fullName }}
而不需要再像使用 method 时那样写成函数的形式如 {{ fullName() }}


四、computed 应用案例1:值的映射

1.通过后端布尔值,前端匹配不同的值(不再需要将“是”、“否”这些中文放进数据库了)

在下面这个案例中,我们直接通过根据依赖 data 中布尔类型变量 isHot 的计算属性 info,将 data 中 isHot 的 “true” 和 “false” 映射为 computed 中 info 的 “凉爽” 和 “炎热”

在这里插入图片描述

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

相关文章:

  • Linux 基本语句_编译C过程
  • MYSQL8解压版 windows 主从部署步骤及配置(包含配置文件,教程文件,免积分下载)
  • RabbitMQ的基本介绍
  • AI智能视频监控技术如何助力美好乡村建设?
  • 【网络安全】2023年堡垒机品牌大全
  • makefile相关知识的讲解
  • OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?
  • Xilinx FPGA 程序固化重新上电程序不运行的问题
  • c++ 使用rapidjson对数据序列化和反序列化(vs2109)
  • 4.迭代最近点ICP及非线性优化求解
  • 【redis总结】
  • 图数据库:释放关系的力量
  • Windows系统如何临时关闭“Windows安全中心实时保护”
  • 二叉树MFC实现
  • Nginx之客户并发数限制解读
  • 白捡一个存储型XSS
  • SpringMVC 学习(五)转发,重定向和传参
  • selenium不定位元素直接使用键盘操作(如弹框操作)
  • Inno Setup安装中文语言
  • 【数据库——MySQL】(10)视图和索引
  • No servers available for service: renren…。 Gateway 网关报503错误 ,已解决
  • 【Spring Cloud】深入理解 Eureka 注册中心的原理、服务的注册与发现
  • 添加路径到头文件默认搜索路径
  • 掌动智能:替代JMeter的压力测试工具有哪些
  • Casper Network 构建企业级区块链生态的野望
  • TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事
  • Django Web开发入门基础
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C#)
  • LetCode算法题---第2天
  • Leetcode.2571 将整数减少到零需要的最少操作数