15 Vue计算属性和侦听器
时间:2019-11-20
本文章向大家介绍15 Vue计算属性和侦听器,主要包括15 Vue计算属性和侦听器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
计算属性
模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。
在模板中放入太多的逻辑会让模板过重且难以维护。例如:
split = 字符中间空格分割, reverse= 反转 join('') = 以空格合并
<div id="example"> {{ message.split('').reverse().join('') }} </div>
在这个地方,模板不再是简单的声明式逻辑。
你必须看一段时间才能意识到,这里是想要显示变量 message
的翻转字符串。
当你想要在模板中多次引用此处的翻转字符串时,就会更加难以处理。
所以,对于任何复杂逻辑,你都应当使用计算属性。
own:
<body> <div id="computed"> <div> <!-- split = 字符中间空格分割, reverse= 反转 join('') = 以空格合并 --> {{ reverseStr }} </div> <!-- 绑定clickHandler 点击事件 --> <button v-on:click='clickHandler'>切换</button> </div> <script type="text/javascript" src="./js/vue.js"></script> <script> var com = new Vue({ el:'#computed', data:{ msg:'Hello Mark' }, // 事件所要执行的函数 methods:{ clickHandler(){ this.msg = 'Hello MIMI' } }, // app名字 通过反射计算属性后返回 computed:{ //默认只有getter方法 // 计算数据属性 watch监听 reverseStr =属性值 reverseStr(){ return this.msg.split('').reverse().join(''); } } }) </script> </body>
基础例子
<div id="example">
<p>Original message: "{{ message }}"</p>
<p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
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 函数:
console.log(vm.reversedMessage) // => 'olleH'
vm.message = 'Goodbye'
console.log(vm.reversedMessage) // => 'eybdooG'
你可以打开浏览器的控制台,自行修改例子中的 vm。
vm.reversedMessage
的值始终取决于 vm.message
的值。
你可以像绑定普通属性一样在模板中绑定计算属性。
Vue 知道 vm.reversedMessage
依赖于 vm.message
,因此当 vm.message
发生改变时,所有依赖 vm.reversedMessage
的绑定也会更新。
而且最妙的是我们已经以声明的方式创建了这种依赖关系:计算属性的 getter 函数是没有副作用 (side effect) 的,这使它更易于测试和理解。
<body> <div id="computed"> <p>我是一个message:'{{message}}'</p> <p>我是一个计算属性反装的message:'{{reversedMessage}}'</p> <div> <!-- split = 字符中间空格分割, reverse= 反转 join('') = 以空格合并 --> {{ reverseStr }} </div> <!-- 绑定clickHandler 点击事件 --> <button v-on:click='clickHandler'>切换</button> </div> <script type="text/javascript" src="./js/vue.js"></script> <script> var com = new Vue({ el:'#computed', data:{ msg:'Hello Mark', message:'Hello Mark', }, // 事件所要执行的函数 methods:{ clickHandler(){ this.msg = 'Hello MIMI' } }, // app名字 通过反射计算属性后返回 computed:{ //默认只有getter方法 // 计算数据属性 watch监听 reverseStr =属性值 reverseStr(){ // this` 指向 Vue com 实例对象 return this.msg.split('').reverse().join(''); }, //Vue知道 reversedMessage依赖于message,当message改变,自身也会改变 reversedMessage(){ return this.message.split('').reverse().join('') }, } }) </script> </body>
计算属性缓存 vs 方法
原文地址:https://www.cnblogs.com/Rivend/p/11897079.html
- 机器学习的技术栈及应用实例脑洞
- 聊聊ES7与ES8特性
- 机器学习的技术栈及应用实例脑洞
- Ryu:OpenFlow协议源码分析
- 详解 LSTM
- 并发系列:从原子更新到CPU锁
- 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
- 神经网络 之 感知器的概念和实现
- 图解ByteBuffer
- TensorFlow-1: 如何识别数字
- 你应该知道的Java垃圾收集器 - 串行、并行、CMS、G1
- ckplayer 如何在PC上完美支持 m3u8播放
- TensorFlow-2: 用 CNN 识别数字
- js图片前端预览之 filereader 和 window.URL.createObjectURL
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 「网络IO套路」当时就靠它追到女友
- 起个简单枯燥的标题:找出连续差相同的数字
- 10分钟带你搞懂代理模式、静态代理、JDK+CGLIB动态代理
- 握草!某程序员竟然在深夜偷偷在代码里下毒!
- 自然资源部贡献的Landuse数据(2000、2010、2020)
- LoRa节点开发——SDK整体设计思路
- 01 . Nginx简介及部署
- 02 . Nginx平滑升级和虚拟主机
- LoRa节点开发——LoRaWAN节点入网代码详解
- 03 . Nginx日志配置及日志切割
- 04 . Nginx的Rewrite重写
- 05 . Nginx的反向代理与负载均衡
- 06 . Nginx静态资源缓存
- 07 . Nginx常用模块及案例
- 08 . Nginx状态码