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 相关文章推荐
根据分辩率调用不同的CSS.
Jan 08 Javascript
JQery jstree 大数据量问题解决方法
Mar 09 Javascript
js函数获取html中className所在的内容并去除标签
Sep 08 Javascript
JS画5角星方法介绍
Sep 17 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
Feb 04 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
node.js中的fs.stat方法使用说明
Dec 16 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
Jun 19 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 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 默默经典版本
2009/08/04 PHP
PHP中soap的用法实例
2014/10/24 PHP
php封装一个异常的处理类
2017/06/08 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python autoescape标签用法解析
2020/01/17 Python
Python中的__init__作用是什么
2020/06/09 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
大专生简历的自我评价
2013/11/26 职场文书
医院总经理职责
2013/12/26 职场文书
军校大学生个人的自我评价
2014/02/17 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
授权委托书公证
2014/09/14 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
交通安全教育心得体会
2016/01/15 职场文书
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers