关于Vue的 watch、computed和methods的区别汇总

请听我详细讲解“关于Vue的 watch、computed和methods的区别汇总”的完整攻略:

Watch

watch 是 Vue 提供的用于观察属性变化的方法,当数据发生变化时执行回调函数。通常情况下,watch 可以用来监听一个数据对象中深层次的属性变化,当属性变化后执行具体的操作,例如网络请求、计算等。

可以使用 vm.$watch 方法将所需要的属性关联到回调函数上,具体的代码示例如下:

// 在 Vue 实例创建之后调用 `vm.$watch()`
watch: {
  // 监听 firstName 属性变化
  firstName: function (val, oldVal) {
    console.log('new: ' + val + ', old: ' + oldVal)
  },
  // 监听 lastName 属性变化
  lastName: function (val, oldVal) {
    console.log('new: ' + val + ', old: ' + oldVal)
  }
}

firstNamelastName 发生改变时,分别会触发回调函数,输出新值和老值。

Computed

computed 是 Vue 提供的计算属性,是一种基于依赖进行缓存的属性,它的值是通过对其它属性进行计算得到的。当依赖的数据发生变化时,computed 会重新计算。

可以通过 getset 方法定义 computed 属性,get 方法用于获取值,set 方法用于修改值。

下面是一个计算属性的示例,根据输入的 firstNamelastName 生成全名:

computed: {
  fullName: {
    // 获取值
    get: function () {
      return this.firstName + ' ' + this.lastName
    },
    // 修改值
    set: function (newVal) {
      var names = newVal.split(' ')
      this.firstName = names[0]
      this.lastName = names[names.length - 1]
    }
  }
}

firstNamelastName 发生改变时,computed 会重新计算 fullName,返回新值。

Methods

methods 是 Vue 实例中定义的一个方法集合,用于处理页面上的交互逻辑。methods 方法可以在模板中被调用,或通过 vm.$methods 来调用。

具体示例如下:

methods: {
  // 点击按钮
  changeColor: function (color) {
    this.backgroundColor = color;
  }
}

当点击按钮时,会调用 changeColor 方法,将背景颜色修改为指定的颜色。

区别汇总

总结一下三者的区别:

  • watch 用于侦听某个值的变化,当该值有变化时,执行回调函数。应用场景:监听对象的深层次变化。
  • computed 计算属性会基于它所依赖的响应式依赖进行缓存,直到某个依赖值发生改变,才会重新计算。应用场景:根据数据计算而来的属性。
  • methods 定义一些方法,用于处理页面上的交互逻辑。应用场景:处理页面上的交互逻辑。

以上就是关于 Vue 的 watchcomputedmethods 的区别汇总的攻略,希望能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Vue的 watch、computed和methods的区别汇总 - Python技术站

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

相关文章

  • JS实现焦点图轮播效果的方法详解

    JS实现焦点图轮播效果的方法详解 焦点图(Carousel)是一个在网页中展示图片或其他内容的流行方式,焦点图的特点是在页面的顶部或中央用封面的图片展示网站重点内容,引导用户进入网站的内页。在网页设计中,焦点图常常是网页布局中非常重要的部分,所以实现一个好的焦点图轮播效果至关重要。 在本文中,我将从JavaScript实现焦点图轮播效果的角度,为大家介绍焦点…

    Vue 2023年5月28日
    00
  • vue3常用响应式对象的api,你全用过了吗

    下面是关于Vue3常用响应式对象的API的完整攻略。 Vue3常用响应式对象的API ref ref 是 Vue3 中创建响应式数据的函数。可以用来包装基本类型的数据,例如数字、字符串等。ref 函数返回一个具有 value 属性的对象,该属性的值为传入的初始值,并且它是响应式的。 示例1: import { ref, reactive } from ‘vu…

    Vue 2023年5月28日
    00
  • Vue如何提升首屏加载速度实例解析

    Vue如何提升首屏加载速度实例解析 前言: Vue 是一个非常流行的前端框架,但默认情况下,Vue 的首屏加载速度可能会比较缓慢。为了解决这个问题,我们需要采用一些技术来提升 Vue 应用的性能,本文将介绍一些方法。 懒加载组件(Lazy Loading) 懒加载组件是 Vue 的一种优化方式,它可以将一部分组件延迟加载,这样可以减少首屏所需要加载的文件数量…

    Vue 2023年5月27日
    00
  • 详解Vue注册组件的方法

    关于Vue注册组件的方法,主要有两种方式,分别是全局注册和局部注册。 1. 全局注册 在Vue中,全局注册即是把组件注册到Vue构造器中,使该组件可在任何地方被使用。我们可以通过Vue.component方法进行全局注册。 语法格式如下: Vue.component(‘组件名称’, { 组件配置项 }) 其中,’组件名称’即为组件的标签名,’组件配置项’包括…

    Vue 2023年5月27日
    00
  • 关于vue中element-ui form或table lable换行的问题

    关于Vue中Element UI Form或Table Label换行的问题,可以采用下述两种方法: 使用自定义Label和El-tooltip 在Element UI的Form组件中,默认情况下,Label标签是不支持换行的。因此,可以采用自定义Label和El-tooltip的方式解决。 示例代码: <template> <el-for…

    Vue 2023年5月27日
    00
  • Vue组件化开发的必备技能之组件递归

    来讲解一下“Vue组件化开发的必备技能之组件递归”的完整攻略吧。 什么是组件递归 组件递归是一种将组件自身作为其子组件嵌套的方式,实现组件的无限嵌套。在组件递归中,我们使用自定义组件作为自身的子组件,以形成一个递归的树形结构。组件递归可以帮助我们很好地组织和呈现数据。 组件递归的实现 组件递归的实现主要需要以下几个步骤: 定义组件 首先,我们需要定义一个组件…

    Vue 2023年5月29日
    00
  • vue获取后台json字符串方式

    获取后台 JSON 字符串的方式在 Vue.js 中有很多种方法,下面介绍两种常见的方法: 方法一 使用Vue.js内置的http模块 (已弃用) 在 Vue.js 中使用 http 模块可以直接获取后台的 JSON 字符串,示例代码如下: <template> <div> <h2>{{title}}</h2>…

    Vue 2023年5月27日
    00
  • Vue MVVM模型与data及methods属性超详细讲解

    Vue是一个基于MVVM架构模式的一款前端框架,可轻松实现数据和视图的绑定,其中data和methods是Vue实例中的常用属性,下面详细讲解其使用方法。 MVVM模型 MVVM模型指的是Model-View-ViewModel模式,将数据(Model)和视图(View)的表示分离,ViewModel则是数据和视图之间的链接。在Vue中,Model就是数据,…

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