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 相关文章推荐
JQuery对checkbox操作 (循环获取)
May 20 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
Vue常用指令详解分析
Aug 19 Javascript
从零开始学习搭建React脚手架项目
Aug 23 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 Javascript
小程序实现多个选项卡切换
Jun 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 随机数的深入理解
2013/06/05 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
浅谈Angular4中常用管道
2017/09/27 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
关于vue面试题汇总
2018/03/20 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Python中字典映射类型的学习教程
2015/08/20 Python
python删除不需要的python文件方法
2018/04/24 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
求职意向书范文
2014/04/01 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
活动费用申请报告
2015/05/15 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript