Vue中计算属性computed的示例解读

发布时间 - 2026-01-11 02:31:16    点击率:

计算属性

表达式是非常便利的,但是它们实际上只用于简单的运算。在模板中放入太多的逻辑会让模板过重且难以维护,所以引入了计算属性computed,将复杂的逻辑放入计算中进行处理,同时computed有缓存功能,防止复杂计算逻辑多次调用引起的性能问题。

computed原理

computed的属性reversedMessage在data中会有一个对我们不可见的cacheReversedMessage属性对应

cacheReversedMessage的值是根据其绑定的data中的message来决定的 获取reversedMessage会返回

cacheReversedMessage的值 message更新之后会立马调用reversedMessage的get方法去给cacheReversedMessage赋值(无论reversedMessage在dom中是否使用) cacheReversedMessage的值发生变化时,相应的dom也会发生变化

注意:computed中的属性和data中的属性名字不能相同,一个属性要么在data里;要么在computed里,computed里的属性要跟data中的配合使用,当data属性发生变化时才会调用get方法更新reversedMessage的值,否则get方法即使返回一个随机数,reversedMessage的值也不会变。

示例代码

computed相当于属性的一个实时计算,如果实时计算里关联了对象,那么当对象的某个值改变的时候,同事会出发实时计算。

比如:

<body id="content">

 <parent :childrens="childrens"></parent>

</body>

<!-- 这个测试主要想证明: 对于计算属性里如果关联对象,即使对象不是组件作用域内的,当对象在外部改变了某个属性,同样会出发计算属性的方法-->

<script>

 var parent = Vue.extend( {

 props: {

  childrens: ''

 },

 template: '<div >{{age}}</div>',

 data: function() {

  return {

  name: '',

  age: 18

  };

 },

 computed: {

  age: function() {

  return this.childrens.age +10;

  }

 },

 created: function() {

  var _parent = this.$parent;

  this._set = {};

  this._set = _parent; 

 }

 } );

 var vm = new Vue( {

 el: 'body',

 data: {

  childrens: {

  name: '小强',

  age: 20,

  sex: '男'

  }

 },

 components: {

  'parent': parent

 }

 } );

 vm.$data.childrens.age = 10;

</script> 

vm.$data.childrens.age这个值改变的时候,动态触发computed里的age属性计算,最后显示到页面的结果是:20。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# vue  # computed计算属性  # computed属性  # vue.js  # 计算属性  # Vue中的computed属性详解  # Vue computed计算属性的使用方法  # vue计算属性computed的使用方法示例  # vue计算属性computed方法内传参方式  # Vue 2.0学习笔记之Vue中的computed属性  # Vue.js第三天学习笔记(计算属性computed)  # Vue computed 计算属性代码实例  # 深入理解Vue Computed计算属性原理  # vue.js计算属性computed用法实例分析  # Vue.js中computed属性高效的数据处理案例  # 随机数  # 太多  # 也会  # 会让  # 这篇文章  # 谢谢大家  # 后会  # 要跟  # 时才  # 绑定  # 中会  # 去给  # 有一个  # 上只  # 改变了  # 结果是  # 引入了  # 有疑问  # br  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  JS碰撞运动实现方法详解  如何在阿里云虚拟主机上快速搭建个人网站?  如何快速搭建高效WAP手机网站?  bing浏览器学术搜索入口_bing学术文献检索地址  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  C++用Dijkstra(迪杰斯特拉)算法求最短路径  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel如何实现模型的全局作用域?(Global Scope示例)  北京企业网站设计制作公司,北京铁路集团官方网站?  Windows Hello人脸识别突然无法使用  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  使用Dockerfile构建java web环境  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  如何在香港免费服务器上快速搭建网站?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  微信小程序 scroll-view组件实现列表页实例代码  如何在阿里云通过域名搭建网站?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  如何快速搭建FTP站点实现文件共享?  js代码实现下拉菜单【推荐】  什么是javascript作用域_全局和局部作用域有什么区别?  EditPlus中的正则表达式实战(5)  iOS发送验证码倒计时应用  深入理解Android中的xmlns:tools属性  网站页面设计需要考虑到这些问题  javascript基于原型链的继承及call和apply函数用法分析  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何创建自定义Artisan命令?(代码示例)  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  浅析上传头像示例及其注意事项  深圳网站制作的公司有哪些,dido官方网站?  如何在阿里云香港服务器快速搭建网站?  实例解析angularjs的filter过滤器  iOS中将个别页面强制横屏其他页面竖屏  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面