一:计算属性

  虽然在模板内使用表达式对属性进行处理十分便利,例如在小胡子语法里写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 自学笔记(三) 计算属性与侦听器的更多相关文章

  1. Vue学习笔记之计算属性和侦听器

    0x00 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split(''). ...

  2. vue入门:(计算属性和侦听器)

    methods watch computed 一.methods-方法 在数据渲染是需要基于多个数据时第一种方法,可以采用methods属性中的方法计算返回值来实现,先来看示例: <div id ...

  3. vue computed和methods 计算属性和侦听器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法

    Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...

  5. Vue.js之Vue计算属性、侦听器、样式绑定

    前言 上一篇介绍了Vue的基本概念,这一篇介绍一下Vue的基本使用. 一.搭建一个Vue程序 1.1 搭建Vue环境 搭建Vue的开发环境总共有三种方法: 引入CDN <script src=& ...

  6. vue计算属性和侦听器

    一.计算属性: main.js: var app = new Vue({ el: '#app', data: { math: 80, physics: 90, english: 30 }, compu ...

  7. Vue.js 生命周期、计算属性及侦听器

    一.创建一个Vue实例 每个Vue应用都是使用Vue函数创建一个Vue实例.所有的Vue组件都是一个Vue实例,并且接受相同的选项对象(一些根实例特有的选项除外). 数据和方法 当一个实例被创建后,它 ...

  8. Vue学习之vue中的计算属性和侦听器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 一起学Vue之计算属性和侦听器

    概述 在Vue开发中,模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.当你想要在模板中多次引用相同表达式时,就会更加难以处理.所以,对于任何复 ...

随机推荐

  1. 初学c# -- 纯属无聊,写下棋

    纯属无聊了,会下的棋都做了. 象棋围棋修改用法都一样. 1.先启动服务端 goServer.exe服务端:地址为IPAddress[] addrIP = Dns.GetHostAddresses(&q ...

  2. 给对话框添加动画 Dialog

    先添加一个动画文件(res->anim文件夹中),文件名为a.xml <?xml version="1.0" encoding="utf-8"?&g ...

  3. oracle 查询索引和主键

    ORACLE: 1.查主键名称: select * from user_constraints where table_name = 'AAA' and constraint_type ='P'; 查 ...

  4. ScrollView嵌套Linearlayout显示不全的解决办法

    以为ScrollView只能嵌套一个元素,所以把几个控件都包裹在了一个LinearLayout中了.但是发现底部显示不全,滑动不到最底下. 代码: <ScrollView android:id= ...

  5. To me

    1.流泪的时候不做任何决定: 2.不反复思考同一个问题: 3.不害怕做错什么: 4.有负面情绪是正常的: 5.一切的烦恼都是自找的: 6.说过的话一定要做到: 7.不要去害怕做一件事: 8.无论是对是 ...

  6. 综合数据api接口使用

    由于请求数据接口是跨域的,但是我们无法改变接口的代码 先从请求后台,然后从后台进行二次请求,请求数据接口 原生代码 package edu.nf.http.test; import org.apach ...

  7. CUDA[3] Samples for accessing shared/global memory

    memory model: programming model: Source:  Udacity Class CS344

  8. IntelliJ IDEA使用心得之Maven项目篇(转)

    IntelliJ IDEA使用心得之Maven项目篇   今天和大家分享下,在IDEA中打开Maven项目的方法. 对于新版的IDEA可以直接打开Maven项目,但是对于旧版的IDEA需要使用Mave ...

  9. discover功能--自动发现主机

    discover功能,让监控的管理更加管理和自动化,现在来演示下如何使用discover功能自动发现主机 1.配置discover 2.在被侦测机上安装zabbix agent 安装完成后,修改配置( ...

  10. MySQL-5.7安装

    2.1 下载mysql 网址:https://www.mysql.com/ [root@localhost ~]# mkdir -p /root/soft/MySQL [root@localhost ...