当前位置:首页 > VUE

vue watch 实现方法

2026-03-10 13:22:06VUE

使用 watch 选项

在 Vue 组件的 watch 选项中定义侦听器,适用于直接监听数据属性或计算属性。

export default {
  data() {
    return {
      count: 0
    }
  },
  watch: {
    count(newVal, oldVal) {
      console.log(`count 从 ${oldVal} 变为 ${newVal}`);
    }
  }
}

监听对象属性

通过 deephandler 监听对象或数组的深层变化。

watch: {
  user: {
    handler(newVal) {
      console.log('user 对象发生变化', newVal);
    },
    deep: true // 深度监听
  }
}

立即触发回调

使用 immediate: true 在初始化时立即执行侦听器。

vue watch 实现方法

watch: {
  count: {
    handler(newVal) {
      console.log('初始值:', newVal);
    },
    immediate: true
  }
}

使用 $watch API

在组件实例中动态添加侦听器,适合需要灵活控制的场景。

export default {
  created() {
    this.$watch('count', (newVal, oldVal) => {
      console.log('动态监听 count:', newVal);
    });
  }
}

监听路由变化

在 Vue Router 中监听 $route 对象的变化。

vue watch 实现方法

watch: {
  '$route'(to, from) {
    console.log('路由从', from.path, '切换到', to.path);
  }
}

监听计算属性

直接侦听计算属性的变化。

computed: {
  fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
},
watch: {
  fullName(newVal) {
    console.log('全名更新为:', newVal);
  }
}

取消侦听器

通过 $watch 返回的函数取消监听。

export default {
  mounted() {
    const unwatch = this.$watch('count', (newVal) => {
      console.log('count:', newVal);
    });
    // 5秒后取消监听
    setTimeout(unwatch, 5000);
  }
}

标签: 方法vue
分享给朋友:

相关文章

vue自己实现下拉导航

vue自己实现下拉导航

实现下拉导航的基本思路 在Vue中实现下拉导航,可以通过结合Vue的响应式数据和事件绑定特性来完成。主要思路是利用v-show或v-if控制下拉菜单的显示与隐藏,并通过鼠标事件或点击事件触发状态变化。…

vue架构实现

vue架构实现

Vue 架构实现核心方案 Vue.js 的架构实现通常围绕模块化、组件化和状态管理展开。以下为常见实现方案: 基于单文件组件(SFC)的模块化 通过 .vue 文件组织模板、脚本和样式: <…

vue实现github

vue实现github

Vue 实现 GitHub 相关功能 创建 GitHub API 请求 在 Vue 项目中,可以使用 axios 或 fetch 与 GitHub API 进行交互。需要在 GitHub 上创建个人访…

vue框架实现

vue框架实现

Vue 框架实现方法 Vue 是一个渐进式 JavaScript 框架,适用于构建用户界面。以下是一些核心实现方法,涵盖基本使用、组件化、状态管理和优化技巧。 基本项目搭建 使用 Vue CLI…

vue实现烟花

vue实现烟花

Vue 实现烟花效果 在 Vue 中实现烟花效果可以通过结合 CSS 动画和 JavaScript 动态生成烟花元素。以下是具体实现方法: 动态生成烟花元素 通过 Vue 的 v-for 动…

vue实现首页

vue实现首页

Vue 实现首页的基本步骤 安装 Vue.js 和相关依赖,可以通过 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代前端开发。 npm instal…