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 相关文章推荐
jquery tools之tabs 选项卡/页签
Jul 25 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
Jul 28 Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 Javascript
详解Webwork中Action 调用的方法
Feb 02 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
Bootstrap实现弹性搜索框
Jul 11 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
jquery validation验证表单插件
Jan 07 Javascript
vue使用keep-alive实现数据缓存不刷新
Oct 21 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
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
一个分页的论坛
2006/10/09 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
js运动事件函数详解
2016/10/21 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
Python原始字符串(raw strings)用法实例
2014/10/13 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Python编程argparse入门浅析
2018/02/07 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
为什么说python更适合树莓派编程
2020/07/20 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
禁止高声喧哗的标语
2014/06/11 职场文书
语文教师求职信范文
2015/03/20 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python
css3 文字断裂效果
2022/04/22 HTML / CSS