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

yizhihongxing

请听我详细讲解“关于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日

相关文章

  • vue 如何引入本地某个文件 require

    在Vue中引入本地某个文件可以使用Webpack提供的require语法或者ES6的import语法。具体步骤如下: 使用Webpack的require语法 在使用require语法前,需要先安装Node.js。 在Vue项目的根目录下打开终端,运行以下命令安装Webpack和相关插件: npm install webpack webpack-cli –s…

    Vue 2023年5月28日
    00
  • vue项目的创建的步骤(图文教程)

    下面是详细讲解Vue项目的创建的步骤: 1. 安装Vue CLI Vue CLI是一个构建Vue项目的官方脚手架工具,使用它可以快速生成一个基于Vue的项目结构,我们需要事先安装它。 可以使用以下命令安装Vue CLI: npm install -g @vue/cli 其中 -g 参数表示全局安装,如果已经安装过Vue CLI,则可以直接跳过此步。 2. 创…

    Vue 2023年5月27日
    00
  • jsp提交到Servlet报404错误问题解决(webroot下子目录)

    问题描述: 当我们在网站中使用JSP表单提交数据到Servlet时,如果Servlet所在的位置是在webroot下的子目录中,可能会出现404错误,无法正常访问Servlet的情况。这是因为JSP默认使用相对路径来访问Servlet,在webroot下的子目录中,相对路径并不能正确地指向Servlet。 解决方案: 我们可以通过以下两个步骤来解决这个问题:…

    Vue 2023年5月28日
    00
  • vue中如何简单封装axios浅析

    下面是详细讲解”Vue中如何简单封装Axios浅析”的攻略,包含以下内容: 1. 简单介绍Axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。它是一个非常流行的、简单易用的 HTTP 请求库,非常适用于 Vue.js 中进行数据请求。 2. 封装 Axios 的目的 在 Vue.js 项目中,我们不可能…

    Vue 2023年5月28日
    00
  • Vue.js每天必学之组件与组件间的通信

    Vue.js每天必学之组件与组件间的通信 在Vue.js中,组件是一个重要的概念。组件可以方便地构建复杂的应用程序,并且可以通过组件之间的通信来实现数据的共享与交互。本文将对Vue.js中组件与组件间的通信进行详细的讲解,并给出两个示例说明。 组件 在Vue.js中,组件是一个独立的模块化单元,有自己的模板、数据和方法。组件可以嵌套,可以被重复使用,并且可以…

    Vue 2023年5月27日
    00
  • Vue如何实现变量表达式选择器

    Vue中实现变量表达式选择器,需要使用Vue的计算属性computed以及Vue的模板语法。下面是完整的攻略,包括两个示例说明: 步骤一:定义计算属性 在Vue组件中,我们可以使用计算属性computed来定义一个具有getter函数的属性。该getter函数可以根据组件的数据data以及其他Vue实例的数据来计算出该计算属性的值。因此,我们可以使用计算属性…

    Vue 2023年5月27日
    00
  • vite + electron-builder 打包配置详解

    下面我将为您详细讲解“vite + electron-builder 打包配置详解”的完整攻略。 1. 准备工作 我们首先需要安装 node.js 和 npm,以便我们使用 viter 和 electron-builder。 2. 创建项目 我们使用 vite 创建一个新项目。在命令行中执行以下命令: npm init vite-app my-electro…

    Vue 2023年5月27日
    00
  • vue父组件调用子组件方法报错问题及解决

    这里提供一个完整的攻略来讲解“Vue父组件调用子组件方法报错问题及解决”。 问题描述 在使用Vue构建应用时,父组件调用子组件的方法时,经常会报“undefined is not a function”或其他类似的错误。 例如,在父组件的methods中调用子组件方法: <template> <div> <ChildCompon…

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