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 用原型继承来实现对象系统
Mar 22 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
判断JS对象是否拥有某属性的方法推荐
May 12 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
Canvas实现动态的雪花效果
Feb 13 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
Feb 20 Javascript
vue-router命名视图的使用讲解
Jan 19 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往XML中添加节点的方法
2015/03/12 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Django中Forms的使用代码解析
2018/02/10 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python版百度语音识别功能
2019/07/09 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
python实现查找所有程序的安装信息
2020/02/18 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
化学专业毕业生自荐信
2013/11/15 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
离婚协议书范文2016
2016/03/18 职场文书