Vue computed计算属性的使用方法


Posted in Javascript onJuly 14, 2017

computed

computed:相当于method,返回function内return的值赋值在html的DOM上。但是多个{{}}使用了computed,computed内的function也只执行一次。仅当function内涉及到Vue实例绑定的data的值的改变,function才会从新执行,并修改DOM上的内容。

computed和method的对比

<div id="example">
 {{ message.split('').reverse().join('') }}
</div>

这个是vue官网一直拿来作为例子的代码。在{{}}可以很方便的放入单个表达式,但是当一个HTML的DOM里面存在太多的表达式,程序会变得很笨重难于维护。

html

<div id="app9">
  9、method与computed的区别<br/>
  fullName<br/>
  {{fullName}}<br/>
  fullName2<br/>
  {{fullName}}<br/>
  fullNameMethod<br/>
  {{getFullName()}}<br/>
  fullNameMethod2<br/>
  {{getFullName()}}<br/>
</div>

js

var app9 = new Vue({
  el: '#app9',
  data: {
    firstName: 'Foo',
    lastName: 'Bar'
  },
  methods:{
    getFullName:function () {
      console.log("执行了methods")
      return this.firstName+" " +this.lastName;
    }
  },
  computed: {
    fullName: function () {
      console.log("执行了computed")
      return this.firstName + ' ' + this.lastName
    }
  }
})
setTimeout('app9.firstName="Foo2"',3000);

控制台输出的结果

执行了computed
执行了methods
执行了methods
执行了computed
执行了methods
执行了methods 

由此可见使用computed,function只会执行一次。当Vue实例中绑定的data数据改变的时候,computed也相对应的只改变一次。

相同点:在以上代码中,两个p标签都会打印出同样被反转的Hello。

不同点:
使用了methods的:HTML中,每一个调用了Vue的methods的方法,都需要执行一遍reversedMessage()这个方法;
而使用computed计算属性的,只执行一遍将结果保存在缓存中。

computed和watch的对比

html

<div id="demo">{{ fullName }}</div>

js

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
 }
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript替换URL中的参数值示例代码
Jan 27 Javascript
Egret引擎开发指南之视觉编程
Sep 03 Javascript
jQuery原生的动画效果
Jul 10 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
Aug 06 Javascript
基于JavaScript操作DOM常用的API小结
Dec 01 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
Dec 12 Javascript
Angular中$broadcast和$emit的使用方法详解
May 22 Javascript
浅谈vue中数据双向绑定的实现原理
Sep 14 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 #Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 #Javascript
Javascript中Promise的四种常用方法总结
Jul 14 #Javascript
js学习心得_一个简单的动画库封装tween.js
Jul 14 #Javascript
详解VUE中v-bind的基本用法
Jul 13 #Javascript
vue通过watch对input做字数限定的方法
Jul 13 #Javascript
深入理解vue $refs的基本用法
Jul 13 #Javascript
You might like
PHP音乐采集(部分代码)
2007/02/14 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
wxpython实现图书管理系统
2018/03/12 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
会计电算化个人求职信范文
2014/01/24 职场文书
教师节简报
2015/07/20 职场文书
中学教师教学工作总结
2015/08/13 职场文书
音乐研修感悟
2015/11/18 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python