当前位置:首页 > VUE

vue实现数据监听

2026-02-19 13:09:26VUE

Vue 数据监听实现方式

Vue 提供了多种方式实现数据监听,核心机制基于响应式系统。以下是常见方法:

使用 watch 选项

在组件选项中直接定义 watch 对象,监听特定数据变化:

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

立即执行的 watch

添加 immediate: true 使监听器立即执行一次:

watch: {
  message: {
    handler(newVal) {
      console.log('Initial load:', newVal)
    },
    immediate: true
  }
}

深度监听对象

设置 deep: true 监听对象内部变化:

watch: {
  user: {
    handler(newVal) {
      console.log('User data changed')
    },
    deep: true
  }
}

计算属性 computed

派生状态监听,自动依赖追踪:

computed: {
  reversedMessage() {
    return this.message.split('').reverse().join('')
  }
}

$watch API

编程式动态添加监听器:

created() {
  this.$watch(
    () => this.count,
    (newVal) => {
      console.log('Count changed to:', newVal)
    }
  )
}

数组变化监听

Vue 能检测以下数组方法触发的变更:

push()
pop()
shift()
unshift()
splice()
sort()
reverse()

响应式原理

Vue 3 使用 Proxy 实现响应式,Vue 2 使用 Object.defineProperty。手动使新属性响应式:

// Vue 2
this.$set(this.obj, 'newProp', value)

// Vue 3
import { reactive } from 'vue'
const state = reactive({ count: 0 })

选择合适的方式取决于具体场景:简单数据变化用 watch,派生数据用 computed,需要深度监听时配置 deep 选项。

vue实现数据监听

标签: 数据vue
分享给朋友:

相关文章

vue怎么实现动画

vue怎么实现动画

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡系统、第三方库集成以及 CSS 动画。以下是常见实现方法: 使用 Vue 过渡系统 通过 <transition>…

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name…

vue实现方法

vue实现方法

Vue 实现方法 Vue 是一种流行的前端框架,用于构建用户界面和单页应用。以下是几种常见的 Vue 实现方法: 创建 Vue 实例 通过 new Vue() 创建一个 Vue 实例,传入配置对象…

vue实现pie

vue实现pie

Vue 实现饼图 在 Vue 中实现饼图通常可以通过第三方图表库(如 ECharts、Chart.js 或 Highcharts)来完成。以下是使用 ECharts 和 Chart.js 的两种常见方…

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…

vue实现机制

vue实现机制

Vue 实现机制的核心原理 Vue.js 的核心实现机制主要基于响应式系统、虚拟 DOM 和组件化设计。以下是关键实现细节: 响应式系统 Vue 通过 Object.defineProperty(…