当前位置:首页 > VUE

vue实现数据监听

2026-01-18 20:46:18VUE

Vue 数据监听实现方式

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

响应式属性(data 和 computed) 在组件选项中定义 data 返回对象,Vue 会自动将其转为响应式:

data() {
  return {
    message: 'Hello Vue'
  }
}

计算属性 computed 会自动追踪依赖:

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

watch 选项 显式监听特定数据变化:

watch: {
  message(newVal, oldVal) {
    console.log('消息变化:', oldVal, '→', newVal)
  }
}

$watch API 动态创建监听器:

created() {
  this.$watch(
    () => this.user.id,
    (newId) => {
      console.log('ID 变化:', newId)
    }
  )
}

深度监听对象 添加 deep: true 监听嵌套属性:

watch: {
  user: {
    handler(newVal) {
      console.log('用户信息变化', newVal)
    },
    deep: true
  }
}

立即触发回调 配置 immediate: true

watch: {
  value: {
    handler(val) {
      console.log('初始值:', val)
    },
    immediate: true
  }
}

原理说明

Vue 2.x 使用 Object.defineProperty 实现数据劫持,Vue 3.x 改用 Proxy。当数据变化时,会触发 setter 通知依赖更新,最终重新执行渲染函数或 watch 回调。

vue实现数据监听

性能注意事项

  • 避免过度使用深度监听(deep watch)
  • 大数据量考虑手动控制监听粒度
  • 必要时使用 unwatch 取消监听

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

相关文章

vue实现帖子

vue实现帖子

Vue 实现帖子功能 使用 Vue 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios 获…

vue分类实现

vue分类实现

Vue分类实现方法 在Vue中实现分类功能通常涉及数据分组、动态渲染和交互逻辑。以下是几种常见的实现方式: 基于计算属性的分类 通过计算属性对原始数据进行分组处理,适合静态或少量数据分类: com…

分页实现vue

分页实现vue

分页实现(Vue) 在Vue中实现分页功能通常需要结合前端分页逻辑和后端API支持。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在客户端完成分页逻辑。 <templ…

vue实现popup

vue实现popup

Vue 实现 Popup 弹窗 使用 Vue 原生组件 创建一个基本的 Vue 组件作为弹窗,通过 v-if 或 v-show 控制显示隐藏。 <template> <div&…

vue cli 实现

vue cli 实现

Vue CLI 实现步骤 安装 Vue CLI 确保 Node.js 版本在 8.9 或以上。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 创建新项目 使…

vue 实现ztree

vue 实现ztree

在Vue中实现类似ZTree的功能,可以通过集成第三方库或自定义组件完成。以下是两种常见方法: 使用vue-tree组件 vue-tree是一个轻量级的Vue树形组件,支持复选框、懒加载等功能,适合…