当前位置:首页 > VUE

vue要实现watch

2026-02-20 05:41:11VUE

Vue 中实现 watch 的方法

在 Vue 中,watch 用于监听数据的变化并执行相应的操作。以下是几种常见的实现方式:

基本用法

通过 watch 选项监听数据的变化,当数据变化时执行回调函数。

export default {
  data() {
    return {
      message: 'Hello Vue'
    }
  },
  watch: {
    message(newVal, oldVal) {
      console.log('Message changed from', oldVal, 'to', newVal)
    }
  }
}

监听对象属性

如果需要监听对象的某个属性,可以使用点语法或字符串形式。

vue要实现watch

export default {
  data() {
    return {
      user: {
        name: 'John',
        age: 25
      }
    }
  },
  watch: {
    'user.name'(newVal, oldVal) {
      console.log('Name changed from', oldVal, 'to', newVal)
    }
  }
}

深度监听

对于对象或数组,如果需要监听其内部属性的变化,可以设置 deep: true

export default {
  data() {
    return {
      user: {
        name: 'John',
        age: 25
      }
    }
  },
  watch: {
    user: {
      handler(newVal, oldVal) {
        console.log('User object changed')
      },
      deep: true
    }
  }
}

立即触发

如果需要立即执行监听函数,可以设置 immediate: true

vue要实现watch

export default {
  data() {
    return {
      message: 'Hello Vue'
    }
  },
  watch: {
    message: {
      handler(newVal, oldVal) {
        console.log('Message is', newVal)
      },
      immediate: true
    }
  }
}

使用 $watch API

在组件实例中,可以通过 this.$watch 动态添加监听器。

export default {
  data() {
    return {
      message: 'Hello Vue'
    }
  },
  created() {
    this.$watch('message', (newVal, oldVal) => {
      console.log('Message changed from', oldVal, 'to', newVal)
    })
  }
}

监听多个数据

如果需要监听多个数据的变化,可以使用计算属性结合 watch

export default {
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    }
  },
  computed: {
    fullName() {
      return `${this.firstName} ${this.lastName}`
    }
  },
  watch: {
    fullName(newVal, oldVal) {
      console.log('Full name changed from', oldVal, 'to', newVal)
    }
  }
}

通过以上方法,可以灵活地监听 Vue 组件中数据的变化并执行相应的逻辑。

标签: vuewatch
分享给朋友:

相关文章

vue前端实现下载进度

vue前端实现下载进度

实现下载进度条的基本思路 在Vue中实现下载进度条,通常需要结合XMLHttpRequest或Fetch API来监听下载进度事件。通过计算已下载数据与总数据的比例,动态更新进度条的显示。 使用XM…

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖拽…

tabbar 实现 vue

tabbar 实现 vue

在 Vue 中实现 TabBar 功能可以通过多种方式完成,以下是几种常见的方法: 使用 Vue Router 结合自定义组件 创建一个自定义的 TabBar 组件,结合 Vue Route…

vue实现tap

vue实现tap

Vue 实现 Tap 事件 在移动端开发中,Tap 事件比 Click 事件更常用,因为 Click 事件有 300ms 延迟。以下是几种在 Vue 中实现 Tap 事件的方法。 使用第三方库 安装…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…

vue 实现滑动

vue 实现滑动

Vue 实现滑动效果的方法 在Vue中实现滑动效果可以通过多种方式,以下是几种常见的方法: 使用CSS过渡和动画 通过Vue的<transition>组件结合CSS过渡或动画实现滑动效果…