vue 计算属性和data_Vue.js教程(五)--Vue的计算属性
![](/assets/blank.gif)
模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:
{{ message.split('').reverse().join('') }}
在这个地方,模板不再是简单的声明式逻辑。你必须看一段时间才能意识到,这里是想要显示变量 message 的翻转字符串。当你想要在模板中多次引用此处的翻转字符串时,就会更加难以处理。 所以,对于任何复杂逻辑,你都应当使用计算属性。
1. 基础例子
Original message: "{{ message }}"
Computed reversed message: "{{ reversedMessage }}"
var vm = new Vue({ el: '#example', data: { message: 'Hello' }, computed: { // 计算属性的 getter reversedMessage: function () { // `this` 指向 vm 实例 return this.message.split('').reverse().join('') } }})
结果: Original message: "Hello" Computed reversed message: "olleH" 这里我们声明了一个计算属性 reversedMessage。我们提供的函数将用作属性 vm.reversedMessage 的 getter 函数。
2.计算属性缓存
计算属性是缓存的,只要相关依赖没有改变,多次访问计算属性得到的值是之前缓存的计算结果,不会多次执行。
这也同样意味着下面的计算属性将不再更新,因为 Date.now() 不是响应式依赖:
computed: { now: function () { return Date.now() }}
相比之下,每当触发重新渲染时,调用方法将总会再次执行函数。 我们为什么需要缓存?假设我们有一个性能开销比较大的计算属性 A,它需要遍历一个巨大的数组并做大量的计算。然后我们可能有其他的计算属性依赖于 A 。如果没有缓存,我们将不可避免的多次执行 A 的 getter!如果你不希望有缓存,请用方法来替代。
3. 计算属性的 setter
计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter :
// ...computed: { fullName: { // getter get: function () { return this.firstName + ' ' + this.lastName }, // setter set: function (newValue) { var names = newValue.split(' ') this.firstName = names[0] this.lastName = names[names.length - 1] } }}// ...
现在再运行 vm.fullName = 'John Doe' 时,setter 会被调用,vm.firstName 和 vm.lastName 也会相应地被更新。
4. 示例
{{msg}}
{{msg2}}
点击改变普通属性值,计算属性也会相应改变
vue 计算属性和data_Vue.js教程(五)--Vue的计算属性相关推荐
- vue 父传子_Vue.js教程Vue基本指令
前言 本文仅介绍基本常用指令(不包括自定义指令和相应的修饰符,这两个以后再写). 再附上官方API文档,大家也可以去看官方解释,更全面更具体.VueAPI 本文所有指令写在views文件夹下的Home ...
- vue页面滚动动画——wow.js教程
WOW.js 是一款帮助你实现滚动页面时触发CSS 动画效果的插件. 缺陷:当页面向下滚动时,动画出现:当页面向上回滚时,动画不会回退.(即动画仅出现一次!) 官网地址 https://www.de ...
- MATLAB数学计算与工程分析范例教程,MATLAB 2016数学计算与工程分析从入门到精通...
全书通过近400个实例讲解了利用MATLAB 2016进行数学计算和工程分析的方法和技巧,涵盖了MATLAB的五大功能:1)数值计算功能:2)符号计算功能:3)图形与数据可视化功能:4)可视化建模与仿 ...
- Html的a标签onclick属性,关于通过js给a标签增加onclick属性
var selfw2 = this; //selfw2.loadData(nm); return selfw2.loadData(nm).then(function(){ var cardInstan ...
- vue教程2-03 vue计算属性的使用 computed
vue教程2-03 vue计算属性的使用 computed computed:{b:function(){ //默认调用getreturn 值}}--------------------------c ...
- Vue数据代理+事件处理+事件修饰符的作用+计算属性的使用,尚硅谷Vue系列教程学习笔记(2)
尚硅谷Vue系列教程学习笔记(2) 参考课程:<尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通> 参考链接:https://www.bilibili.com/video/ ...
- vue 计算属性和data_Vue:计算属性
一.为什么要使用计算属性 1.什么是计算属性 计算属性:可以理解为能够在里面写一些计算逻辑的属性.具有如下的作用: 减少模板中的计算逻辑. 数据缓存.当我们的数据没有变化的时候,不会再次执行计算的过程 ...
- Vue.js教程-Vue项目的目录结构和.vue文件的构成
Vue.js教程-Vue项目的目录结构和.vue文件的构成 前言 Vue项目的目录结构(Vue-cli3/4版本) .vue文件的构成 Html区域(template) script区域 export ...
- 【Vue教程】Vue.js推文
为什么前端工程师的需求这么大 我国手机用户超过13亿,活跃智能机用户超过23亿部,全国网民人数约7.51亿.这么多人,每天都有几十分钟或者几个小时,要使用手机上网.全体中国人一年消费的网页和 App ...
最新文章
- php数组合并如何不覆盖,php如何实现合并数组并且不覆盖重复值
- vue-cli3.0结合lib-flexible、px2rem实现移动端适配,完美解决第三方ui库样式变小问题
- Rafy 框架 - 大批量导入实体
- vue为p标签_通过vue.js几个基本操作,理解一下什么是插槽「606」
- ABB机器人套接口通信 机器人部分
- 从零开始实现ASP.NET Core MVC的插件式开发(六) - 如何加载插件引用
- css hover变成手_web前端入门到实战:彻底掌握css动画「transition」
- 基于JAVA+SpringMVC+Mybatis+MYSQL的博客系统
- android usb存储固定,如何在Android 10中设置默认USB行为
- 【Vue指令】—v-if、v-show二者用法及区别
- 贺利坚老师汇编课程24笔记:内存单元[...]和(...)内容
- Error while waiting for device: The emulator process for AVD Pixel_API_30 has terminated.
- MicroMsg.SDK.WXApiImplV10: register app failed for wechat app signature check failed
- bo耳机h5使用说明_五分钟了解Bamp;O耳机音箱能不能买
- Linux定时器实现
- 三维扫描仪修复的功能有多重要
- java中重命名文件夹名,【Java】对文件或文件夹进行重命名
- 前端的一些实用算法题
- 杂货机器人翻车实录:会被路人“吓”到,还会跟错主人!3千美元怕是买了个寂寞?
- PostgreSQL的json和jsonb比较
热门文章
- nodejs mysql 返回值_带有Mysql数据库返回值的Nodejs
- 我的世界java版使用剑_我的世界:JAVA版藏“私货”内置绝世好剑与神功,你玩的版本有吗...
- Java学习笔记2.6.2 数组 - 二维数组
- Python练习:目录与文件操作
- NOIP2017(不算是题解)
- 【BZOJ1060】【codevs1435】时态同步,我可以叫它树形递推吗
- 【BZOJ1030】【Tyvj1806】文本生成器,AC自动机+DP
- 【OJ4976】硬币,神奇的背包
- ie11浏览器可以下载java吗_如何卸载IE11? 如何安装低版本的IE浏览器?
- 【英语学习】【Level 07】U05 Best Destination L5 Top choice