vue Watch和Computed的使用总结

yizhihongxing

我来为你详细讲解“vue Watch和Computed的使用总结”的完整攻略。

什么是vue Watch和Computed

Vue.js开发中,数据的状态更新非常频繁,因此需要工具来监听并响应数据变化。Vue Watch和Computed都是解决Vue数据变化监听的两个方案。

Watch是一种对数据进行监听并做出相应的方案,当监听的数据发生变化时,会立即触发一个回调函数。而Computed是一种通过计算衍生出新的数据,当依赖的数据改变时才会触发重新计算。

Watch的使用

Watch是Vue的一个实例方法,我们可用在这个方法中观察一个数据的变化。其实,我们最常用的情况就是监听某个具体的,需要改变应用状态的数据的变化。

// 组件
export default {
  data() {
    return {
      count: 0,
    }
  },
  watch: {
    count(newValue, oldValue) {
      console.log(`count 的值从 ${oldValue} 变成了 ${newValue}`);
    }
  }
}

在组件实例上定义了一项名叫 count 的数据,然后在 watch 中观察 count 数据的变化。当 count 数据变化时, Vue 会自动调用回调函数。在回调函数中会传入新值和旧值,我们可以在这里做出进一步的处理。

Computed的使用

Computed是Vue的一个计算属性,它可以依赖已有的数据计算出新的数据,当依赖的数据改变时,它也会跟着更新。

<template>
  <div>
    <p>员工姓名:{{userInfo.name}}</p>
    <p>员工年龄:{{userInfo.year}}</p>
    <p>员工性别:{{userInfo.sex}}</p>
    <p>员工级别:{{userInfo.level}}</p>

    <hr>
    <p>该员工是否升职:{{isPromote}}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: '小明',
      year: 28,
      sex: '男',
      level: 5
    }
  },
  computed: {
    userInfo() {
      return {
        name: this.name,
        year: this.year,
        sex: this.sex,
        level: this.level
      }
    },
    isPromote() {
      return this.level >= 5 ? '是' : '否'
    }
  }
}
</script>

在该示例中,我们定义了一个名叫 userInfo 的计算属性,它依赖了组件中的多个 data 数据。最后我们将该计算属性在模板中渲染出来,当某个依赖数据发生改变时,该计算属性会重新计算并渲染到页面上。

总结

Watch和Computed都是用于解决Vue数据变化监听的方案,Watch是对具体的数据进行监听并做出相应的方案,而Computed是通过计算生成衍生的新数据,并且能够依赖其他数据的变化做出响应。下面是使用 build-in component 的 demo

<template>
  <div>
    <input v-model="msg">
    <br>
    {{ counter }}
    <br>
    {{ reversedMsg }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: 'hello',
      counter: 1
    }
  },
  watch: {
    msg: function (newVal, oldVal) {
      console.log(newVal, oldVal, 'msg changed')
      this.counter++
    }
  },
  computed: {
    reversedMsg: function () {
      console.log('reversedMsg')
      return this.msg.split('').reverse().join('')
    }
  }
}
</script>

在这个示例中,我们使用 watch 监视了 msg 的变化,并将其同步到计数器 counter 上,同时,我们还使用了计算属性 reversedMsg 生成了基于 msg 的一个衍生数据,在msg改变时完整触发了计算和更新,实现了 watch 和 computed 的使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue Watch和Computed的使用总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue生成二维码QR Code的简单实现方法示例

    下面是“Vue生成二维码QR Code的简单实现方法示例”完整攻略。 什么是QR Code?为什么要使用QR Code? QR Code(Quick Response code)是由日本公司Denso Wave于1994年创建的,是一种二维条码,可以储存较大量的信息。QR Code的使用范围非常广泛,包括在线支付、移动营销、物流管理等各个领域。 使用QR C…

    Vue 2023年5月27日
    00
  • Vue中的 ref,props,mixin属性

    下面是对Vue中ref、props、mixin属性的详细讲解攻略: 1. ref属性 1.1 简介 ref 属性是 vue 框架的一个特定属性,它可以让我们在 vue 组件中获得特定的 dom 节点或组件实例。如果我们在组件的模板中使用 ref,例如 ref=”myRef”,那么在 vue 实例中就可以以 this.$refs.myRef 的形式访问到该元素…

    Vue 2023年5月28日
    00
  • 一文详解Vue3响应式原理

    一文详解Vue3响应式原理 前言 Vue.js作为前端框架的代表之一,其响应式原理一直是其独特的魅力所在。Vue3中,响应式原理进行了一些重大调整和改进,本文将详细讲解Vue3响应式原理及其实现过程。 响应式原理 Vue的响应式原理是基于ES6中Object.defineProperty()的getter和setter方法实现的。Vue3在这个基础上,引入了…

    Vue 2023年5月28日
    00
  • Vue编译器AST抽象语法树源码分析

    一、概述 Vue是一个流行的JavaScript框架,通过它可以方便地构建可伸缩的单页面应用程序,能够帮助我们快速构建高效且易于维护的Web应用系统。在Vue中,模板被转换成一个抽象语法树(AST),这个AST是通过Vue编译器(parser)将模板代码转换而来的。AST通过获取DOM节点,识别出语言特定的标记和元素,自动创建了一个基于对象表示代码的结构树。…

    Vue 2023年5月27日
    00
  • 如何修改Vue项目运行的IP和端口

    当我们开发 Vue.js 项目时,默认情况下,项目运行在本地的 IP 地址和端口上。但是有些情况下,我们可能需要修改这些默认设置。下面是详细讲解如何修改 Vue.js 项目运行的 IP 和端口的攻略: 1. 修改 package.json 文件中的 scripts 配置 Vue.js 项目的 package.json 文件中有一项 scripts,其中包含了…

    Vue 2023年5月28日
    00
  • vue计算属性computed、事件、监听器watch的使用讲解

    下面我将详细讲解“vue计算属性computed、事件、监听器watch的使用讲解”的完整攻略,让你更加深入理解vue中这三个重要的概念。 计算属性computed computed可以理解为计算属性,它可以根据已经存在的数据computed属性(即model中data中的属性)进行计算得到一个新的值,这个新的值可以使用在模板中。computed具有缓存的特…

    Vue 2023年5月28日
    00
  • vue静态配置文件不进行编译的处理过程(在public中引入js)

    那么首先我们来介绍一下什么是Vue静态配置文件。Vue.js是一个用于构建用户界面的JavaScript框架,它允许我们在单个页面应用程序中创建可重用的组件。在Vue中,我们有一个叫做Vue CLI的工具,可以用它来配置我们的Vue项目,包括路由、Webpack等,其中就包括了Vue的静态配置文件。 Vue的静态配置文件是指在项目的根目录下的vue.conf…

    Vue 2023年5月28日
    00
  • vue设计一个倒计时秒杀的组件详解

    Vue设计一个倒计时秒杀的组件是一种常见的需求,在电商领域比较常见。以下是实现该组件的详解: 设计组件 首先,我们需要考虑该组件的设计和功能。该组件需要实现一个倒计时的效果,并且在倒计时结束时需要执行某些操作,比如提交订单、弹出提示等。因此,我们可以将该组件分为两部分:倒计时显示和倒计时结束时的操作。 倒计时显示部分可以通过计算时分秒来实现;倒计时结束时的操…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部