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

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日

相关文章

  • vue3.0中setup使用(两种用法)

    下面是Vue 3.0中setup使用的完整攻略。 什么是setup setup是Vue 3.0中新引入的API,是Vue3.0新的组件选项。setup函数是在beforeCreate和created之间执行的,用于组件的初始化状态。它是一个接收props和context两个参数的函数,返回一个渲染函数可用的数据。通过setup函数,我们可以更好的组织代码,实…

    Vue 2023年5月28日
    00
  • vue实现单点登录的方式汇总

    下面是“Vue实现单点登录的方式汇总”的完整攻略。 概述 单点登录(Single Sign-On,简称SSO)是一种授权机制,允许用户使用一组凭证登录到多个相关但相互独立的软件系统中,而不需要多次输入身份验证信息。这在大型企业或者多个系统共存的情况下非常常见。 Vue框架作为目前最为流行的前端框架之一,在实现单点登录方面也提供了多种解决方案。本篇文章将会介绍…

    Vue 2023年5月28日
    00
  • vue全局数据管理示例详解

    Vue全局数据管理示例详解 Vue是一个流行的JavaScript框架,用于构建交互式的Web应用程序。在Vue中,数据管理是非常重要的一个方面。Vue提供了不同的方式来管理各种不同类型的数据,包括本地数据、API请求和服务器数据等。 Vuex 在Vue中,我们可以使用Vuex来管理全局数据。Vuex是一个Vue.js专用的状态管理库,它提供了一种集中存储共…

    Vue 2023年5月28日
    00
  • vue使用map代替Aarry数组循环遍历的方法

    下面是关于使用map代替Array数组循环遍历的方法的详细攻略。 1. 什么是map map是JavaScript原生的数组方法,它可以用于对数组中每个元素进行操作,并返回一个新的数组。 2. map的使用方法 map方法接受一个函数作为参数,函数中包含两个参数,分别是当前遍历到的元素以及当前元素的索引。 语法如下: arr.map(callback(cur…

    Vue 2023年5月27日
    00
  • autojs的Node.js正确退出脚本示例

    AutoJS 是一款安卓设备上运行JavaScript脚本的工具,使用Node.js的方式可以让我们在脚本中使用更多功能,但由于特殊的 Android 平台和 AutoJS 运行环境,在退出脚本时需要注意一些问题。 问题描述 AutoJS 脚本在执行时,如果直接使用 exit() 函数退出,可能会导致脚本未能正确关闭,在下一次运行时会出现在上一次未正常退出后…

    Vue 2023年5月28日
    00
  • Vue3 构建 Web Components使用详解

    Vue3 构建 Web Components使用详解 Web Components 是一种新的 Web 技术,它可以让 Web 开发者更加灵活地创建自定义标签,实现跨框架、跨库的组件化开发。Vue3 作为当前最流行的前端框架之一,也支持使用 Web Components 扩展其功能。 什么是 Web Components Web Components 是一种…

    Vue 2023年5月28日
    00
  • 详解vue-cil和webpack中本地静态图片的路径问题解决方案

    下面是 “详解vue-cil和webpack中本地静态图片的路径问题解决方案”的完整攻略: 问题描述 在使用Vue-cli和Webpack时,我们在组件或模板中引用本地或者网络图片时,会发现图片无法正常显示出来。 原因是因为Webpack在打包时,会将所有静态资源文件进行压缩打包,我们在代码中引用图片路径,实际上Webpack已经修改了路径或者将其包含在了m…

    Vue 2023年5月28日
    00
  • 浅谈super-vuex使用体验

    浅谈super-vuex使用体验 super-vuex是一款基于Vuex的状态管理插件,它可以简化Vuex的使用方式,提高提交和获取数据的效率。 安装 在使用super-vuex之前,需要先进行安装。可以通过npm或yarn来进行安装: npm install super-vuex –save 或 yarn add super-vuex 快速开始 在使用s…

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