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

Vue-计算属性

计算属性

案例

输入姓、名, 全名称=姓+名

在这里插入图片描述

实现

插值语法

  • 代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>计算属性与监视</title><!--  引入Vue  --><script type="text/javascript" src="../js/vue.js"></script></head><body><div id="root"><h1>计算属性与监视</h1><div>姓:<input type="text" v-model="firstName" /><br />名:<input type="text" v-model="lastName" /><br /><!-- 插值语法 -->全名称:<span>{{firstName}}{{lastName}}</span><br> </div></div></body><script type="text/javascript">Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示new Vue({el: "#root",data: {firstName: "刘",lastName: "德华",}});</script>
</html>
  • 效果

在这里插入图片描述

方法

  • 代码

{{ fullName() }}: 方法 必须携带括号

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>计算属性与监视</title><!--  引入Vue  --><script type="text/javascript" src="../js/vue.js"></script></head><body><div id="root"><h1>计算属性与监视</h1><div>姓:<input type="text" v-model="firstName" /><br />名:<input type="text" v-model="lastName" /><br /><!-- 插值语法 --><!-- 全名称:<span>{{firstName}}{{lastName}}</span><br> --><!-- 方法 : 必须携带括号 -->全名称:<span>{{ fullName() }}</span><br />全名称:<span>{{ fullName() }}</span><br /></div></div></body><script type="text/javascript">Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示new Vue({el: "#root",data: {firstName: "刘",lastName: "德华",},methods: {fullName() {console.log("调用fullname方法了")return this.firstName + this.lastName;},},});</script>
</html>
  • 效果

在这里插入图片描述

发现多次调用,fullName 方法也被调用了多次

计算属性

  • 代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>计算属性与监视</title><!--  引入Vue  --><script type="text/javascript" src="../js/vue.js"></script></head><body><div id="root"><h1>计算属性与监视</h1><div>姓:<input type="text" v-model="firstName" /><br />名:<input type="text" v-model="lastName" /><br /><!-- 插值语法 --><!-- 全名称:<span>{{firstName}}{{lastName}}</span><br> --><!-- 方法 : 必须携带括号 --><!-- 全名称:<span>{{ fullName() }}</span><br /> --><!-- 全名称:<span>{{ fullName() }}</span><br /> --><!-- 计算属性  -->全名称:<span>{{ computedFullName }}</span><br />全名称:<span>{{ computedFullName }}</span><br /></div></div></body><script type="text/javascript">Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示new Vue({el: "#root",data: {firstName: "刘",lastName: "德华",},computed: {computedFullName: {get() {console.log("调用computedFullName get 了");return this.firstName + "-" + this.lastName;},set(value) {console.log("调用computedFullName set 了");const names = value.split("-")this.firstName = names[0]this.lastName = names[1]},},// 简写 : 适用于只进行计算 不做修改的场景 // computedFullName() {//   console.log("调用computedFullName了");//   return this.firstName + this.lastName;// },},methods: {fullName() {console.log("调用fullname方法了");return this.firstName + this.lastName;},},});</script>
</html>
  • 效果

在这里插入图片描述

发现多次调用,computedFullName 只调用了一次

总结

属性计算有多种方式实现 插值方法计算属性

  • 插值: 适用于简单的拼接之类的。
  • 方法:适用于复杂的运算封装称方法供使用
    • 花括号中调用方法必须携带括号。如:{{fullName()}}
    • 多次调用,均会触发方法进行对应的逻辑执行
  • 计算属性:vue提供专用于属性计算的配置块
    • 本质是对象的get、set实现的,最终绑定到vm
    • 因此调用时只需要计算属性名称,不能携带括号
    • 多次调用,只会触发一次计算逻辑,缓存机制
    • 首次调用依赖项变更 会触发计算逻辑即缓存更新
http://www.xdnf.cn/news/511795.html

相关文章:

  • Nordic 的RTC(Real-time counter)的介绍
  • 【GPT入门】第39课 OPENAI官方API调用方法
  • 螺旋矩阵--LeetCode
  • DB-MongoDB-00002--Workload Generator for MongoDB
  • ⭐️白嫖的阿里云认证⭐️ 第二弹【课时1:提示词(Prompt)技巧】for 「大模型Clouder认证:利用大模型提升内容生产能力」
  • 【NGINX】 -10 keepalived + nginx + httpd 实现的双机热备+ 负载均衡
  • 【锂电池剩余寿命预测】LSTM长短期记忆神经网络锂电池剩余寿命预测(Pytorch完整源码和数据)
  • Nginx配置中include mime.types的作用及正确配置mime类型
  • 【Android】从Choreographer到UI渲染(二)
  • Kotlin Multiplatform--04:经验总结(持续更新)
  • 系统架构设计(十四):解释器风格
  • 论信息系统项目的采购管理
  • 【周输入】510周阅读推荐-3
  • LG P9844 [ICPC 2021 Nanjing R] Paimon Segment Tree Solution
  • Python编程入门:从安装到基础算法应用的完整指南
  • weibo_comment_pc_tool | 我于2025.5月用python开发的评论采集软件,根据帖子链接爬取评论的界面工具
  • UE5无法编译问题解决
  • 机器学习(13)——LGBM(2)
  • sparkSQL读入csv文件写入mysql(2)
  • 【微信小程序 + 高德地图API 】键入关键字搜索地址,获取经纬度等
  • 餐厅等位与核酸检测排队:用算法模拟生活中的等待
  • printf在c语言中代表什么(非常详细)
  • PyTorch音频处理技术及应用研究:从特征提取到相似度分析
  • OpenCV-python数学形态学
  • 《虚拟即真实:数字人驱动技术在React Native社交中的涅槃》
  • MongoDB的安装及简单使用
  • python3GUI--智慧交通分析平台:By:PyQt5+YOLOv8(详细介绍)
  • Python面试总结
  • [Java实战]Spring Boot整合RabbitMQ:实现异步通信与消息确认机制(二十七)
  • Text2SQL:自助式数据报表开发---0517