5.4 计算属性
1. 为何需要计算属性?
表达式的计算逻辑可能会比较复杂,使用计算属性可以使模板内容更加简洁
2. 计算属性的用法
| computed: { |
| reversedMessage: function () { |
| return this.msg.split('').reverse().join('') |
| } |
| } |
| |
例:
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Document</title> |
| </head> |
| <body> |
| <div id="app"> |
| <div>{{msg}}</div> |
| <div>{{reverseString}}</div> |
| </div> |
| <script type="text/javascript" src="js/vue.js"></script> |
| <script type="text/javascript"> |
| |
| |
| |
| var vm = new Vue({ |
| el: '#app', |
| data: { |
| msg: 'Nihao' |
| }, |
| computed: { |
| reverseString: function(){ |
| return this.msg.split('').reverse().join(''); |
| } |
| } |
| }); |
| </script> |
| </body> |
| </html> |
3. 计算属性与方法的区别
- 计算属性是基于它们的依赖进行缓存的
- 方法不存在缓存
例:
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Document</title> |
| </head> |
| <body> |
| <div id="app"> |
| <div>{{reverseString}}</div> |
| <div>{{reverseString}}</div> |
| <div>{{reverseMessage()}}</div> |
| <div>{{reverseMessage()}}</div> |
| </div> |
| <script type="text/javascript" src="js/vue.js"></script> |
| <script type="text/javascript"> |
| |
| |
| |
| var vm = new Vue({ |
| el: '#app', |
| data: { |
| msg: 'Nihao', |
| num: 100 |
| }, |
| methods: { |
| reverseMessage: function(){ |
| console.log('methods') |
| return this.msg.split('').reverse().join(''); |
| } |
| }, |
| computed: { |
| reverseString: function(){ |
| console.log('computed') |
| |
| var total = 0; |
| for(var i=0;i<=this.num;i++){ |
| total += i; |
| } |
| return total; |
| } |
| } |
| }); |
| </script> |
| </body> |
| </html> |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)