VUE watch监听器的基本使用方法详解

标题:VUE watch监听器的基本使用方法详解

什么是VUE watch监听器

Vue.js 提供了一个叫做 watch 的属性,用于监听数据的变化,当监听的数据发生变化时,执行回调函数或者做一些其他的操作。

如何在组件中使用VUE watch监听器

在 Vue 组件中使用 watch,需要在组件内部声明一个 watch 配置对象,并指定要监听的数据和该数据改变时触发的回调函数。

以下示例演示了基本的 watch 的使用方法:

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">+1</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  watch: {
    count(newValue, oldValue) {
      console.log('count 变为:' + newValue)
    }
  },
  methods: {
    increment() {
      this.count++
    }
  }
}
</script>

在上面的代码中,我们定义了一个计数器组件,该组件有一个 data 属性 count,还有一个方法 increment,用于增加 count。然后我们在组件配置对象 watch 中监听了 count 的变化,当 count 改变时,会触发 watch 中定义的回调函数。

值得注意的是,当 VUE 组件被销毁时,自定义的 watch 监听器会自动删除,无需担心内存泄漏问题。

watch 实例

下面我们来进行一个更加复杂的示例,演示 watch 应用的实际场景。

现在我们有一个商品列表,列表中的商品可以被添加、删除、修改。同时,页面中有一个统计总价的栏目,需要在商品变化时自动更新总价。

<template>
  <div>
    <ul>
      <li v-for="item in items" :key="item.id">
        <input type="text" v-model="item.name"></input>
        <input type="text" v-model.number="item.price"></input>
        <button @click="remove(item)">删除</button>
      </li>
    </ul>
    <p>总价格:{{ total }}</p>
    <button @click="add">添加商品</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '商品1', price: 10 },
        { id: 2, name: '商品2', price: 20 },
        { id: 3, name: '商品3', price: 30 }
      ]
    }
  },
  computed: {
    total() {
      return this.items.reduce((total, item) => {
        return total + item.price
      }, 0)
    }
  },
  methods: {
    add() {
      this.items.push({ id: Date.now(), name: '', price: 0 })
    },
    remove(item) {
      const index = this.items.indexOf(item)
      this.items.splice(index, 1)
    }
  },
  watch: {
    items: {
      handler(newItems, oldItems) {
        console.log('商品列表变为:', newItems)
      },
      deep: true
    }
  }
}
</script>

在上面的代码中,我们通过定义了一个 items 数组,该数组中的每一个元素都是一个商品,包含商品名称和商品价格属性。我们在 computed 中定义了一个计算属性 total,用于统计所有商品价格之和。然后我们定义了 add 和 remove 两个方法,用于添加和删除商品。

最后我们定义了一个 watch 监听器,用于监听 items 数组的变化。在监听到变化时,会执行 watch 中定义的回调函数。

值得注意的是,我们在 watch 中设置了 deep 选项,表示要对 items 数组中的每一个元素进行深度监测。否则,当 items 数组中的元素发生变化时,watch 监听器将会无法监听到。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VUE watch监听器的基本使用方法详解 - Python技术站

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

相关文章

  • 关于vue-tree-chart简单的使用

    关于vue-tree-chart简单的使用其实非常简单,一般包含以下几个步骤: 安装vue-tree-chart npm install vue-tree-chart –save 导入vue-tree-chart 在你需要使用vue-tree-chart的组件中,可以使用以下方式进行引入: “` “` 使用vue-tree-chart 在你需要使用vu…

    Vue 2023年5月29日
    00
  • vue中{{}},v-text和v-html区别与应用详解

    让我给你详细讲解一下”Vue中{{ }},v-text和v-html区别与应用详解”。 什么是Vue.js Vue.js是一个轻量级的JavaScript框架,它专注于构建用户界面,同时也可以用于构建单页面应用程序。它的核心是响应式编程,通过对“数据驱动视图”的理念来实现用户界面的构建。Vue.js支持一些基本的指令以实现与用户界面的交互,如:{{}},v-…

    Vue 2023年5月28日
    00
  • vue 实现手动分割日期

    下面我将为您提供完整的攻略,让您能够使用 Vue 实现手动分割日期。 1.准备工作 在开始实现之前,需要先准备好相应的开发环境。Vue 项目通常会使用 Vue CLI 进行快速构建和管理。如果您尚未配置好 Vue 开发环境,请先安装 npm 和 Vue CLI,然后创建一个新项目。 # 安装 Vue CLI npm install -g vue-cli # …

    Vue 2023年5月29日
    00
  • Vue3使用路由及配置vite.alias简化导入写法的过程详解

    下面就来详细讲解一下“Vue3使用路由及配置vite.alias简化导入写法的过程详解”。 一、前置准备 在开始使用路由及配置vite.alias之前,需要先安装Vue3及Vue Router。使用命令行工具安装: npm install vue@next vue-router@4 –save 同时,还需要使用Vite作为打包工具。同样使用命令行工具安装:…

    Vue 2023年5月28日
    00
  • 如何用webpack4带你实现一个vue的打包的项目

    下面是如何用webpack4带你实现一个vue的打包的项目的完整攻略。 一、安装和配置webpack 首先安装webpack和webpack-cli依赖: npm install webpack webpack-cli –save-dev 然后在项目根目录下创建webpack.config.js文件,并写入如下配置: module.exports = { …

    Vue 2023年5月28日
    00
  • Vue中的vue-resource示例详解

    Vue中的vue-resource示例详解 什么是vue-resource vue-resource是一个Vue.js插件,用于通过XHR实用RESTful API。 安装和引用 安装: npm install vue-resource –save 引用: import VueResource from ‘vue-resource’ Vue.use(Vue…

    Vue 2023年5月28日
    00
  • 详解在Vue中有条件地使用CSS类

    针对“详解在Vue中有条件地使用CSS类”的主题,我为大家准备了以下攻略: 1. 组件属性绑定方式 在Vue中,我们可以使用v-bind指令将一个属性绑定到组件的属性上,通过这种方式,我们就可以很方便地切换元素的样式,来达到我们的需求。 示例1: 利用v-bind指令绑定CSS类 <template> <div :class="{…

    Vue 2023年5月28日
    00
  • vue-cli webpack 引入jquery的方法

    下面是关于“vue-cli webpack 引入jquery的方法”的攻略: 步骤一:安装 jquery 首先,我们需要在项目中安装 jquery,可以通过 npm 包管理器来进行安装。在命令行中输入以下命令即可: npm install jquery –save 其中的 –save 参数会将 jquery 添加到您的项目的 package.json 文…

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