模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。对于任何复杂逻辑,都应当使用计算属性。

<div id="example"><p>original message : "{{message}}"</p><p>computed reversed message : "{{reverseMessage}}"</p></div><script>var vm = new Vue({el:"#example",data:{message : "zxq"},computed : {reverseMessage : function(){return this.message.split('').reverse().join('');}}});</script>

同样的效果也可以通过在表达式中调用methods实现。

注:计算属性是基于他们的依赖进行缓存的,只有在相关依赖发生改变时,计算属性才会重新求值。

如上示例,只有当message改变时,多次访问 reverseMessage 计算属性才会再次执行函数,否则会返回之前的结果。

而对比methods,总是会再次执行函数。

computed 和 watch

<div id="app0">firstname : <input type="text" v-model="firstName"/><br/>lastname  : <input type="text" v-model="lastName"/><p>my name is : {{fullName}}</p>
</div>

① watch

    var vm = new Vue({el: '#app0',data: {firstName: 'Foo',lastName: 'Bar',fullName: 'Foo Bar'},watch: {firstName: function (val) {this.fullName = val + ' ' + this.lastName},lastName: function (val) {this.fullName = this.firstName + ' ' + val}}})

② computed

     var vm = new Vue({el: '#app0',data: {firstName: 'Foo',lastName: 'Bar'},computed: {fullName: function () {return this.firstName + ' ' + this.lastName}}})

相比之下,计算属性更为简洁

计算属性默认只有get方法,但在必要时也可以提供一个set方法

  <div id="example">firstname     :     <input type="text" v-model="firstName"/><br/>lastname      :     <input type="text" v-model="lastName"/><br/>my name is   :     <input v-model="fullName" /></div><script>var vm = new Vue({el:"#example",data: {firstName: 'zhu',lastName: 'xingqing'},computed : {fullName : {get : function(){return this.firstName + ' ' + this.lastName},set : function(newVal){newfull = newVal.split(' ');this.firstName = newfull[0];this.lastName = newfull[1];}}}});</script>

转载于:https://www.cnblogs.com/zhuxingqing/p/10502052.html

Vue语法学习第三课——计算属性相关推荐

  1. vue 计算属性_lt;Vue 源码笔记系列6gt;计算属性 computed 的实现

    1. 前言 原文发布在语雀: <Vue 源码笔记系列6>计算属性 computed 的实现 · 语雀​www.yuque.com 上一章我们已经学习过 watch,这一章就来看一下计算属性 ...

  2. Python学习第三课-基本数据类型

    Python学习第三课-基本数据类型 一.基本概念 1.1表达式 1.2语句 1.3程序 1.4函数 内置函数 自定义函数 参数 返回值 二.标识符 2.1 关键字 2.2标识符概念 驼峰命名法 下划 ...

  3. JavaScript学习 第三课(三)

    JavaScript学习 第三课(三) 学习内容 一.日期和时间对象 二.日期和对象常用的方法 三.修改日期和对象常用的方法 四.将日期和时间转化为字符串 五.日期时间对象的比较 一.日期和时间对象 ...

  4. VUE项目学习(三):win10版nginx部署vue项目

    VUE项目学习(三):win10版nginx部署vue项目 niginx的安装和启停操作参照博客:https://blog.csdn.net/qq_26666947/article/details/1 ...

  5. 语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符)

    语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符) (如有错误,欢迎指正,感谢!) 类 类是面向对象的程序设计中的概念,实现信息的封装 概念: 类就是拥有相等行为和相同的属性的 ...

  6. Vue+Electron学习系列 (三) -- 自动更新

    Vue+Electron学习系列 ​​​​​​​1️⃣Vue+Electron学习系列 (一) -- 初识​​​​​​​ 2️⃣ Vue+Electron学习系列 (二) -- 打包发布 3️⃣ Vu ...

  7. VUE学习一:初识VUE、指令、动态绑定、计算属性

    文章目录 导言 一.01-初体验 1. ch01_helloworld.html 2. ==v-for指令==:ch02_vue列表展示_v-for.html 3. ==v-on指令==:ch03.1 ...

  8. 4.vue基础(三)计算属性-监视(侦听)属性

    文章目录 1. 计算属性 1.1 插值语法实现姓名案例 1.2 methods实现 1.3 计算属性实现 2.监视(侦听)属性 2.1 天气案例 2.2 利用监听属性 2.3 深度监听 2.3.1 监 ...

  9. Vue学习笔记之04-computed计算属性

    计算属性 computed 什么是计算属性, 在某些情况下, 需要将数据先进行转化后再进行显示, 或者需要将多个数据结合后再进行显示, 那么就需要将属性进行处理, 这就叫做计算属性 在进行变量的操作的 ...

最新文章

  1. RocketMQ 消息丢失场景分析及如何解决!
  2. php判断ip地址小程序
  3. 【原创】QT简单计算器
  4. js 用下标获取map值_javascript怎么获取map的值?
  5. Linux下SSH Session复制
  6. Android 四大组件学习之ContentProvider三
  7. 云计算 third day
  8. NiceScroll接管iview table高度自适应变化
  9. 半导体、芯片、集成电路、无尘车间具体释义及区别
  10. python出入库_Python-批量导出excel加盟商出入库明细
  11. CocosCreator 框架设计
  12. 关于网络捐款 (r5笔记第53天)
  13. 计算机自动保存会存到哪里,电脑自动关机前会自动保存吗
  14. 【踩坑日记 · 嵌入式 Linux】在香橙派 Zero 2 上编译安装 CH340 驱动(OrangePi Zero 2)
  15. 最详细PicGo(图床)加阿里云OSS实现图片自动上传
  16. 解决 ENVI App Store安装后无法打开的问题
  17. 树莓派4B使用VNC连接之大无语事件
  18. 1549_AURIX_TC275_SCU系统中的CCU模块
  19. pet缩聚流程图_PET缩聚聚合工艺.doc
  20. Mac上几款好用的视频播放器推荐

热门文章

  1. ipython安装成功却无法运营_pyspider显示安装成功但仍无法运行
  2. JDK的下载与安装eclipse的下载与安装
  3. 『数据库』 E-R图(实体联系图)你都不会,你设计什么数据库?
  4. 深度学习资料汇总(满满的干货)
  5. [机器学习]gcForest算法理解
  6. phpStorm注册码
  7. 软件测试 测试停止标准_停止正常测试
  8. 第一章 统计学概论
  9. linux修改进程优先级
  10. Service IP 原理 - 每天5分钟玩转 Docker 容器技术(137)