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

yizhihongxing

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中使用 pako.js 解密 gzip加密字符串的方法

    下面是详细讲解vue中使用pako.js解密gzip加密字符串的方法的完整攻略: 准备工作 引入pako.js库 确定gzip加密字符串的编码方式 解密过程 将gzip加密字符串进行base64解码转化成一个UInt8Array类型的数组 let str = "H4sIAAAAAAAAAKvLy0zJzcy00ElVQJDmFhYWFgYGBlJY…

    Vue 2023年5月27日
    00
  • Vue 自定义指令功能完整实例

    下面我将详细介绍“Vue自定义指令功能完整实例”的攻略。 一、Vue自定义指令简介 Vue中,我们可以自定义指令来增强视图层的交互能力。通过自定义指令,我们可以封装常用的DOM操作,让其可重用,并且能在模板中直接使用。常见的指令,如v-model、v-show、v-for、v-bind和v-on都是Vue自带的指令。而Vue自定义指令就是用户自己定义一些新的…

    Vue 2023年5月27日
    00
  • Vue过滤器(filter)实现及应用场景详解

    Vue过滤器(filter)是一种用于格式化或转换数据的技术,它可以在视图中简化数据的渲染过程,并且提高代码的可读性和可维护性。在本文中,我们将讲解如何实现Vue过滤器,以及它们在不同场景中的应用。 1. Vue过滤器的实现 1.1 基本语法 Vue过滤器是一个全局的函数,可以在模板中通过管道符号 (|) 使用。下面是Vue过滤器的基本语法: Vue.fil…

    Vue 2023年5月27日
    00
  • 巧用Vue.js+Vuex制作专门收藏微信公众号的app

    下面我来详细讲解“巧用Vue.js+Vuex制作专门收藏微信公众号的app”的完整攻略。 1. 搭建Vue.js项目 首先需要搭建一个基于Vue.js的项目。可以使用Vue CLI来快速生成一个基础项目,命令如下: vue create wechat-collect 这个命令会创建一个名为wechat-collect的项目,并自动添加Vue.js所需要的基础…

    Vue 2023年5月27日
    00
  • mpvue写一个CPASS小程序的示例

    下面是mpvue写一个CPASS小程序的详细攻略,包含两条示例说明: 一、先决条件 在正式开始编写小程序之前,需要安装好cpass-cli和mpvue框架,并且具有mpvue开发的基础知识。 二、创建项目及配置 2.1 创建项目 使用cpass-cli创建一个mpvue工程: cpass create demo –template mpvue 2.2 配置…

    Vue 2023年5月27日
    00
  • 带你理解vue中的v-bind

    当使用 Vue.js 开发页面时,我们常常需要给 HTML 元素动态绑定属性或者是事件,这个时候就需要使用到 v-bind 指令。v-bind 可以用来动态绑定 HTML 属性,甚至是自定义属性。 使用方法 v-bind 指令可以缩写成简洁的冒号绑定形式。使用方法如下: <template> <div> <!– 完整语法 –…

    Vue 2023年5月28日
    00
  • vue router权限管理实现不同角色显示不同路由

    实现权限管理需要以下步骤: 1. 安装Vue Router npm install vue-router –save 2. 配置路由 在router/index.js文件中,定义路由和对应的组件,并为每个路由定义一个meta字段,用于存放该路由需要的权限。 import Vue from ‘vue’ import Router from ‘vue-rout…

    Vue 2023年5月27日
    00
  • 简易vuex4核心原理及实现源码分析

    下面就来详细讲解一下“简易vuex4核心原理及实现源码分析”的完整攻略。 一、什么是Vuex? Vuex是Vue.js官方推出的一款状态管理模式。作为一个共享状态管理库,它可以将多个组件之间共享的状态抽离出来形成全局唯一数据源,提供了一种集中式存储和管理应用状态的方案。 二、Vuex核心原理 Vuex的核心原理是响应式数据,也就是说,所有数据的变更都可以被具…

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