vue2.0的计算属性computed和watch的区别及各自使用场景解读

Vue2.0的计算属性computed和watch的区别及各自使用场景解读

Vue2.0中,Vue实例提供了两种方法:computed和watch来追踪和响应状态变化。

计算属性computed

定义:computed是一个计算属性,其返回值依赖于其他的状态数据。computed属性默认只有getter方法,因此不可以修改。

示例

<template>
  <div>
    <h2>计算属性computed示例</h2>
    <p>{{ message }}</p>
    <p>{{ reverseMessage }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello Vue!',
    }
  },
  computed: {
    reverseMessage() {
      return this.message.split('').reverse().join('')
    },
  },
}
</script>

输出:

计算属性computed示例

Hello Vue!

!euV olleH

使用场景

  1. 计算一个值,并且这个值需要依赖于状态数据。
  2. 这个值需要在模板中多次使用。

监听watch

定义:watch是一个监听器,用来观察某个状态数据在发生变化时执行的特定逻辑。

示例

<template>
  <div>
    <h2>监听watch示例</h2>
    <p>{{ message }}</p>
    <input type="text" v-model="newMessage" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello Vue!',
      newMessage: '',
    }
  },
  watch: {
    newMessage(newVal) {
      this.message = newVal
    },
  },
}
</script>

输入:

监听watch示例

Hello Vue!

当在输入框中输入World时,输出:

监听watch示例

Hello Vue!

World

使用场景

  1. 监听某个所关心的状态数据的变化并且做一些特定的响应逻辑。
  2. 表单元素的双向数据绑定。

computed和watch的区别

  1. computed是计算属性,具有缓存功能,只有在计算的数据发生变化时才会重新求值;watch则是观察一个值的改变,每次值发生变化时都会执行回调。
  2. computed适用于数据多次使用,watch适用于需要对数据进行特定的响应逻辑。
  3. computed一般用于模板中的插值表达式和指令中的表达式,watch一般用于data数据变化时且需要执行异步或复杂操作时的情况。

综上,哪个更好还是需要根据业务场景来选择使用。

参考文献:
- Vue.js 官方文档computed
- Vue.js 官方文档watch

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue2.0的计算属性computed和watch的区别及各自使用场景解读 - Python技术站

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

相关文章

  • 手把手带你安装vue-cli并创建第一个vue-cli应用程序

    下面我将为您详细讲解如何安装vue-cli并创建第一个vue-cli应用程序的完整攻略。 1. 安装Node.js和npm 首先,您需要在您的电脑上安装Node.js和npm。如果您已经安装了,请跳过这一步。 您可以在Node.js的官方网站下载适合您操作系统的安装包,并按照提示进行安装。 2. 安装Vue CLI Vue CLI是一个基于Vue.js的快速…

    Vue 2023年5月27日
    00
  • vue项目查看vue版本及cli版本的实现方式

    要查看Vue版本以及CLI版本,需要在控制台中使用命令来完成。下面是具体的步骤和示例: 步骤1:查看Vue版本 在控制台中运行以下命令: vue –version 在命令行中,你应该看到Vue的版本号。例如: Vue CLI 4.2.3 这意味着你正在使用Vue CLI4的最新版本。 步骤2:查看CLI版本 在控制台中运行以下命令: vue info 这将…

    Vue 2023年5月28日
    00
  • 微信小程序实现表单验证提交功能

    讲解“微信小程序实现表单验证提交功能”的完整攻略,具体步骤如下: 1. 编写表单 首先需要在小程序页面中编写表单,包括输入框、下拉框等等常见表单元素,并且给每一个表单元素设置一个唯一的id值,以便后面表单验证时获取元素。代码示例: <form> <input id="name" placeholder="请输入…

    Vue 2023年5月27日
    00
  • vue.js click点击事件获取当前元素对象的操作

    获取当前元素对象的操作在Vue.js中是非常常见的需求,这个过程很简单,可以使用事件绑定函数和refs属性组合实现。下面是具体的操作细节。 1. 事件绑定函数 在Vue.js中,使用@click指令可以为元素绑定点击事件,当触发点击事件时就会调用相应的函数,如果需要获取当前元素对象,可以为这个事件绑定一个函数,在函数内使用this关键字获取当前的DOM对象。…

    Vue 2023年5月28日
    00
  • vue对象复制方式(深拷贝,多层对象拷贝方式在后面)

    Vue.js是一个非常流行的JavaScript框架,它提供了一种响应式的数据绑定机制,使开发人员可以方便地管理和修改UI状态。在Vue.js开发中,我们经常需要对Vue对象进行复制操作,这里提供了深拷贝和多层对象拷贝两种方式。 深拷贝方式 深拷贝是指将一个对象及其所有属性和属性值复制到一个新的对象中,这个新的对象与原始对象没有任何关联。在JavaScrip…

    Vue 2023年5月28日
    00
  • 使用vue写一个翻页的时间插件实例代码

    下面我为您详细讲解如何使用vue写一个翻页的时间插件实例代码。 1. 创建vue组件 首先,在Vue项目中定义一个翻页的时间插件组件。为了便于管理,我们通常将该组件定义在一个单独的文件中,在该文件中定义一个名为Timer.vue的组件。 <template> <div class="timer"> <span…

    Vue 2023年5月29日
    00
  • nuxt.js添加环境变量,区分项目打包环境操作

    在Nuxt.js中,可以通过添加环境变量来区分项目的打包环境,以便更好地为不同的环境配置应用程序。下面是Nuxt.js添加环境变量,区分项目打包环境操作的完整攻略。 1. 添加环境变量 在Nuxt.js应用程序中添加环境变量需要使用到一些npm包,我们可以通过以下命令安装它们: npm i dotenv-webpack cross-env -D 然后在Nux…

    Vue 2023年5月28日
    00
  • Vue执行方法,方法获取data值,设置data值,方法传值操作

    Vue是一个现代化的JavaScript框架,Vue提供了许多易用的方法和 变量来加快我们前端应用的开发速度。本文将详细讲解Vue执行方法,方法获取data值,设置data值以及方法传值操作。 Vue执行方法 在Vue中,我们可以使用方法来执行一些操作,例如当我们点击一个按钮时,就需要执行方法来处理交互事件。定义Vue方法的方式如下所示: <templ…

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