Vue.js学习之计算属性


Posted in Javascript onJanuary 22, 2017

前言

计算属性是用来声明式的描述一个值依赖了其它的值。当你在模板里把数据绑定到一个计算属性上时,Vue 会在其依赖的任何值导致该计算属性改变时更新 DOM。这个功能非常强大,它可以让你的代码更加声明式、数据驱动并且易于维护。

开始用vue会把所有的模版上的数据都放到data属性里,或者有的时候data属性里变量多了之后觉得有些只是用一次的变量就直接写到模版里了,后来看到同组的同事在用computed属性,就又去查了一下api,发现这种情况其实最好用的就是computed。

1. computed可以保持模版的清晰,在template里尽量只进行展示和绑定,而不要加入逻辑操作。

2. 用computed的还有一个好处就是会跟随其他data属性的变化自动变化

比如官方文档的一个例子:

var vm = new Vue({
 el: '#demo',
 data: {
 firstName: 'Foo',
 lastName: 'Bar',
 fullName: 'Foo Bar'
 }
})
vm.$watch('firstName', function (val) {
 this.fullName = val + ' ' + this.lastName
})
vm.$watch('lastName', function (val) {
 this.fullName = this.firstName + ' ' + val
})

如果用watch就会产生代码的冗余,比如在直播中状态的变化就可以用来计算是否展示视频之类的上层属性

var vm = new Vue({
 el: '#demo',
 data: {
 firstName: 'Foo',
 lastName: 'Bar'
 },
 computed: {
 fullName: function () {
  return this.firstName + ' ' + this.lastName
 }
 }
})

总结

以上就是关于Vue.js的计算属性的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
js的with语句使用方法
Sep 21 Javascript
JavaScript Event学习第七章 事件属性
Feb 07 Javascript
Jquery 1.42 checkbox 全选和反选代码
Mar 27 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 Javascript
Bootstrap实现弹性搜索框
Jul 11 Javascript
在web中js实现类似excel的表格控件
Sep 01 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 Javascript
使用watch在微信小程序中实现全局状态共享
Jun 03 Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 Javascript
angular中的post请求处理示例详解
Jun 30 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 #Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
Jan 22 #Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 #Javascript
select下拉框插件jquery.editable-select详解
Jan 22 #Javascript
原生js实现对Ajax的封装(仿jquery)
Jan 22 #Javascript
js遍历json的key和value的实例
Jan 22 #Javascript
jquery pagination分页插件使用详解(后台struts2)
Jan 22 #Javascript
You might like
Terran魔法科技
2020/03/14 星际争霸
php下的权限算法的实现
2007/04/28 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
python获取标准北京时间的方法
2015/03/24 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python subprocess模块常见用法分析
2018/06/12 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
浅析python函数式编程
2020/09/26 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
人力资源部经理的岗位职责
2014/03/04 职场文书
毕业论文致谢信
2015/05/14 职场文书
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技