Vue中watch、computed、updated三者的区别及用法

yizhihongxing

Vuewatchcomputedupdated这三个属性都是用于监听数据变化的,但是它们的用法和作用方式是不同的。

watch

watch用于侦听某个数据值的变化,当被侦听的数据发生变化时,系统就会自动调用watch的回调函数。

watch: {
  someData: function (newVal, oldVal) {
    // do something when someData has been changed
  }
}

上述代码中,someData就是要被侦听的数据,newValoldVal分别为新值和旧值。回调函数中可以针对someData的变化做出相应的处理,比如执行一些必要的操作或更新其他的组件等。

computed

computed用于计算属性,根据已有的数据计算出新的数据。与watch不同的是,computed是基于依赖的缓存,只有当依赖数据发生改变时,computed才会重新计算,否则直接返回之前的缓存结果。

computed: {
  someComputedData: function () {
    // compute some data based on someOldData
    return someNewData
  }
}

上述代码中,someOldData是依赖数据,它的变化会引发someComputedData的重新计算,从而得出someNewData,也就是新的数据。

updated

updated是一个生命周期钩子函数,用于监听数据变化后,Vue实例完成更新后所触发的回调。

updated: function () {
  // do something after the component has been updated
}

当数据发生变化后,组件重新渲染时,updated函数就会被调用。通常可以在这个函数内部执行一些DOM操作或其他的必要的逻辑。

下面给出一个使用范例:

<template>
  <div>{{ someData }}</div>
</template>

<script>
export default {
  data () {
    return {
      someData: 'Hello, world!'
    }
  },
  watch: {
    someData: function (newVal, oldVal) {
      console.log(`Watch: "${oldVal}" -> "${newVal}"`)
    }
  },
  computed: {
    reversedData: function () {
      return this.someData.split('').reverse().join('')
    }
  },
  updated: function () {
    console.log('Updated')
  }
}
</script>

上述代码中,我们定义了一个组件,并在其中定义了一个数据someData,还定义了一个watch函数、一个计算属性reversedData和一个updated函数。

当你启动这个组件,打开控制台,可以看到这个组件的初始化日志以及watchcomputedupdated的运作方式。

# 初始化日志
Watch: "undefined" -> "Hello, world!"
Updated

# 修改someData的值
Watch: "Hello, world!" -> "Hello, Vue!"
Updated

# 修改someData的值
Watch: "Hello, Vue!" -> "Jessie, hi!"
Updated

综上所述,watchcomputedupdated三个属性的区别就在于它们的作用方式和使用场景不同。在具体应用时,应根据具体的需求来选择使用哪个属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue中watch、computed、updated三者的区别及用法 - Python技术站

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

相关文章

  • vue与react详细

    Vue与React详细攻略 1. 概述 Vue和React是当前最流行的JavaScript框架之二,Vue是一款建构用户界面的渐进性框架,React则是一款快速构建UI界面的JavaScript库。这两款框架在构建Web应用、移动应用和桌面应用的时候都表现出了出色的性能和稳定性,因此备受开发者和企业青睐。 2. 开发者使用场景 两者在开发者使用场景上可能有…

    Vue 2023年5月28日
    00
  • vue和webpack安装命令详解

    下面详细介绍一下如何安装 vue 和 webpack,以及相应的命令详解。 Vue.js 的安装 全局安装 可以使用以下命令全局安装 Vue CLI: npm install -g @vue/cli 如果你是 Mac 系统,并且使用了 Homebrew,则可以使用以下命令: brew install node 然后再使用全局安装命令: npm install…

    Vue 2023年5月29日
    00
  • vue3获取url地址参数的示例详解

    首先我们来介绍下如何获取URL地址参数。在Vue 3中,可以通过$router对象获取到路由信息,进而获取URL地址参数。 假设我们的路由路径为:/user/:id,则我们可以通过以下方式获取路由参数id的值: this.$route.params.id 其中,this代表Vue实例对象。 接下来,我们分别使用两个实例来说明如何获取URL地址参数。 示例一:…

    Vue 2023年5月27日
    00
  • vite搭建vue2项目的实战过程

    首先,我们需要先了解一下Vite和Vue2的基础概念。 Vite是一个新型前端构建工具,它能够在开发环境下实现秒级启动的开发服务,使用Vue2的话需要安装vite@^1.0.0版本。Vue2是目前最流行的前端MVVM框架之一,我们可以使用它来构建前端项目。 那么,接下来就是使用vite搭建Vue2项目的实战过程了。 第一步:安装vite 使用yarn或npm…

    Vue 2023年5月28日
    00
  • Vue中util的工具函数实例详解

    Vue中util的工具函数实例详解 在Vue中,utils工具函数是非常重要的一部分。它们能够帮助我们更加方便地进行Vue组件开发,并提高我们的开发效率。本文将详细讲解Vue中util的工具函数种类、使用方法和实例。 Vue中util的工具函数种类 Vue的utils工具函数主要包括以下几种类型: 样式处理相关的工具函数:包括kebabCase、camelC…

    Vue 2023年5月28日
    00
  • 十分钟带你读懂Vue中的过滤器

    十分钟带你读懂Vue中的过滤器 什么是过滤器 过滤器(Filter)是Vue.js提供的一项非常实用的功能,它用于在渲染数据之前对数据进行一些处理。 在Vue中,我们可以使用过滤器来快速地处理数据,比如格式化日期、去除重复项等操作。 基本用法 在Vue中,我们可以通过filters选项来定义过滤器: <div id="app"&gt…

    Vue 2023年5月27日
    00
  • 从vue基础开始创建一个简单的增删改查的实例代码(推荐)

    下面我将详细讲解如何从Vue基础开始创建一个简单的增删改查的实例代码: 1. 创建基于Vue的前端项目 在创建Vue的前端项目时,需要先安装Vue的脚手架工具Vue CLI。具体安装方法可以参考官方文档:Vue CLI 安装文档。 安装完成后,打开命令行工具,进入到项目存放的目录下,使用以下命令创建一个新的Vue项目: vue create my-proje…

    Vue 2023年5月28日
    00
  • 浅谈vue中get请求解决传输数据是数组格式的问题

    下面是详细讲解“浅谈vue中get请求解决传输数据是数组格式的问题”的完整攻略: 问题描述 在Vue项目中使用get方式进行网络请求时,当数据是数组格式时,传输的数据可能不完整或者丢失。这是由于get方式传送的数据是基于url方式,而url对于数据量的限制是有上限的,一旦数据量过大就可能出现丢失情况。该问题在Vue框架开发中比较常见,因此需要我们对其进行解决…

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