vue 自学笔记(三) 计算属性与侦听器
一:计算属性
虽然在模板内使用表达式对属性进行处理十分便利,例如在小胡子语法里写number + 1实现对数据的简单处理,但若我们在其中加入大量的代码,使得逻辑变重,导致难以维护。例如下面的代码,并不是简单的逻辑处理,而是需要经过一段时间的推算后,才知道在 div 中展示的是怎么样的内容
可以在小胡子语法中直接书写简单js

Vue 建议我们在其中只做一些简单的运算即可,那么当给页面要绑定的属性需要大量逻辑处理的时候,我们建议使用计算属性
1:基础例子

创建了一个根节点,我们现在给其挂载实例

明确观点, fullname 在调用时为属性
现在我们可以看到页面有一个输入框,受v-model双向绑定影响,框内会呈现 lastName 的属性值。我们需要明确一点,虽然 fullname 类似方法,但实际上它是一个属性(因此按照属性使用放在模板语法中),只是没有定义在 data 中。fullname 的值收到 firstName 和 lastName 影响,当我们改变 lastName 的值时,页面上的 fullname 也发生了变化。
2: 不使用计算属性,使用方法进行改写

借用上面的代码,我们可以将 Anotherfullname 绑定在页面上,也可以呈现出和计算属性一样的效果。我们可以将同一函数定义为一个方法而不是一个计算属性。两种方式的最终结果确实是完全相同的。然而,不同的是计算属性是基于它们的依赖进行缓存的。只在相关依赖发生改变时它们才会重新求值。
注意!!!
..就是说函数,每次刷新都话在次执行. 而计算属性,不会重新加载

3 :计算属性的getter 和setter
vue 官网文档解释

我的解释:
计算属性默认只有 getter 函数,用来获取新值。当我们不明确的写出他们的时候,仅做方法写(如上例子),就只利用了 getter 函数。需要使用 setter 的话,我们要明确写出。

getter 函数明确的获取了其依赖的两个属性,然后处理返回。当我们要设置 fullname 的属性值时,会触发 setter 属性,参数 value 是我们设置的内容,例子中,setter 被调用后,相应的:vm 的 firstName 和 lastName 也会发生改变。
二:侦听器的使用:
虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
watch 始终监视着你写在里面的属性,当它发生变化的时候,就会执行你提前写好的逻辑处理。我们来看用计算属性实现的例子,如何被 watch 实现。
使用watch 实现时间侦听

wtach 监视着 lastName 这个属性,当我们修改 input 框,导致 data 中的 lastName 变化的时候,触发了 watch,执行对应的逻辑。
vue 自学笔记(三) 计算属性与侦听器的更多相关文章
- Vue学习笔记之计算属性和侦听器
0x00 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split(''). ...
- vue入门:(计算属性和侦听器)
methods watch computed 一.methods-方法 在数据渲染是需要基于多个数据时第一种方法,可以采用methods属性中的方法计算返回值来实现,先来看示例: <div id ...
- vue computed和methods 计算属性和侦听器
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法
Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...
- Vue.js之Vue计算属性、侦听器、样式绑定
前言 上一篇介绍了Vue的基本概念,这一篇介绍一下Vue的基本使用. 一.搭建一个Vue程序 1.1 搭建Vue环境 搭建Vue的开发环境总共有三种方法: 引入CDN <script src=& ...
- vue计算属性和侦听器
一.计算属性: main.js: var app = new Vue({ el: '#app', data: { math: 80, physics: 90, english: 30 }, compu ...
- Vue.js 生命周期、计算属性及侦听器
一.创建一个Vue实例 每个Vue应用都是使用Vue函数创建一个Vue实例.所有的Vue组件都是一个Vue实例,并且接受相同的选项对象(一些根实例特有的选项除外). 数据和方法 当一个实例被创建后,它 ...
- Vue学习之vue中的计算属性和侦听器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 一起学Vue之计算属性和侦听器
概述 在Vue开发中,模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.当你想要在模板中多次引用相同表达式时,就会更加难以处理.所以,对于任何复 ...
随机推荐
- jQuery获取URL中的参数
//获取URL地址栏中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + &quo ...
- 使用JavaMail发送邮件-从FTP读取图片并添加到邮件正文发送
业务分析: 最近工作需要,需要从FTP读取图片内容,添加到邮件正文发送.发送邮件正文,添加附件采用Spring的MimeMessageHelper对象来完成,添加图片也将采用MimeMessageHe ...
- DJango 基础 (4)
Django模板标签 知识点: 基本概念 常用标签 模板标签例子 模板继承与应用 注释标签 模板标签 标签在渲染的过程中提供任意的逻辑. 这个定义是刻意模糊的. 例如,一个标签可以输出内容,作为控制结 ...
- python历史与基本类型
前言 我自学的方式主要是看文档,看视频,第一次做写博客这么神圣的事情,内心是忐忑的,写的东西比较杂,路过的小伙伴不要嘲笑我,主要是记录一日所学,顺便锻炼一下语言组织能力吧,anyway,这些都不重要, ...
- 开始Dev之路
从今天开始,开启Dev的发展之路.
- Monotonic Array LT896
An array is monotonic if it is either monotone increasing or monotone decreasing. An array A is mono ...
- js判断手机系统(Android或IOS),跳转相应下载地址
<script type="text/javascript"> $(document).ready(function(e) { var u = navigator.us ...
- IDEA下Spring Boot显示Run Dashboard面板
在 .idea/workspace.xml 文件中找到 <component name="RunDashboard"> <option name="ru ...
- 1.4eigen中的块运算
1.4 块运算 块是矩阵或数组的一个矩形部分.块表达式既可以做左值也可以作右值.和矩阵表达式一样,块分解具有零运行时间成本,对你的程序进行优化. 1.使用块运算 最常用的块运算是.block()成员函 ...
- quick-cocos2d-x lua框架解析(一)对UI进行操作的UiUtil脚本
最近一段时间接手了一个cocos游戏项目,由于我是U3D开发入门,所以花了一段时间来钻研cocos2d的使用与项目架构.与U3D相比,cocos2d的开发界面实在做的不咋地.不过在看过源码之后,源码跑 ...