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中split函数的使用方法说明
Dec 26 Javascript
手机平板等移动端适配跳转URL的js代码
Jan 25 Javascript
JS根据生日算年龄的方法
May 05 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
Jan 04 Javascript
javascript基本算法汇总
Mar 09 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 jQuery
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
Node.js中文件系统fs模块的使用及常用接口
Mar 06 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
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
JavaScript中的this机制
2016/01/30 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Python脚本获取操作系统版本信息
2016/12/17 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
机械电子工程专业推荐信范文
2013/11/20 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
《风筝》教学反思
2016/02/23 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python