1.什么是计算属性

  computed:计算属性的重点突出在 属性 两个字上(属性是名词),首先它是个 属性 其次这个属性有 计算的能力(计算是动词),这里的 计算 就是个函数;简单点说,它就是一个能够将计算结果缓存起来的属性(将行为转化成了静态的属性),仅此而已;可以想象为缓存!

2.编写程序

  注意:methods 和 computed 里的东西不能重名

说明:

  • methods:定义方法,调用方法使用 currentTime1(),需要带括号
  • computed:定义计算属性,调用属性使用 currentTime2,不需要带括号;this.message 是为了能够让 currentTime2 观察到数据变化而变化
  • 如何在方法中的值发生了变化,则缓存就会刷新!可以在控制台使用 vm.message="计算属性",改变下数据的值,再次测试观察效果!

结论:

  • 调用方法时,每次都需要进行计算,既然有计算过程则必定产生系统开销,那如果这个结果是不经常变化的呢?此时就可以考虑将这个结果缓存起来,采用计算属性可以很方便的做到这一点,计算属性的主要特性就是为了将不经常变化的计算结果进行缓存,以节约我们的系统开销;
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <div id="vue">
<!--注意,一个是方法,一个是属性-->
<p>调用当前时间的方法:{{currentTime1()}}</p>
<p>当前时间的计算属性:{{currentTime2}}</p>
</div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
<script type="text/javascript">
var vm = new Vue({
el: '#vue',
data: {
message: 'Hello Vue'
},
methods: {
currentTime1: function () {
return Date.now();
}
},
computed: {
//currentTime2 ,这是一个属性!不是方法
currentTime2: function () {
this.message;
return Date.now();
}
}
});
</script>
</body>
</html>

可以看出:

  • methods中的方法没有放入缓存中,调用一直改变
  • computed中的方法放入缓存中,调用不变。如果修改其中内容,则缓存中的内容改变。

最新文章

  1. PHP array_multisort—对多个数组或多维数组进行排序
  2. LightHttpd源码分析
  3. MySQL binlog 组提交与 XA(两阶段提交)
  4. substr — 详解
  5. WPF 组合快捷键
  6. flst与fitem命令是这么用的
  7. activeMQ设置admin的用户名和密码
  8. 8天学通MongoDB——第三天 细说高级操作
  9. Oracle分析函数之FIRST_VALUE和LAST_VALUE
  10. Frame 处理
  11. html类,id规范命名
  12. DHTML【3】--HTML
  13. IBM面试记
  14. Next Greater Element I
  15. python使用
  16. 初始ajax技术
  17. 002 python准备做题的一些准备
  18. springboot无法加载oracle驱动终极解决
  19. Cannot add foreign key constraint @ManyToMany @OneToMany
  20. Z遮罩层完全覆盖页面

热门文章

  1. JS解决所有浏览器连续输入英文字母不换行问题,包括火狐(转)
  2. Oracle 原生驱动带来的精度问题的分析与解决
  3. 5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
  4. 《 .NET内存宝典》阅读指南 - 第1章
  5. sequelize-auto生成sequelize所有模型
  6. elasticSearch查询(一)
  7. 部署Azure环境Web应用程序不能直接访问JSON文件解决方案
  8. C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法
  9. 记netmvc中Html.BeginForm的一个大坑
  10. Python collectioins