当前位置:首页 > 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 在初始化时立即执行侦听器。

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 对象的变化。

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

监听计算属性

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

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

取消侦听器

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

vue watch 实现方法

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

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

相关文章

vue 实现筛选

vue 实现筛选

实现筛选功能的基本方法 在Vue中实现筛选功能通常涉及以下几个核心步骤: 数据绑定与筛选逻辑 使用v-model绑定筛选条件到Vue实例的数据属性,结合计算属性实现动态筛选: data() {…

vue实现导入

vue实现导入

Vue 实现文件导入功能 使用 <input type="file"> 元素 在 Vue 模板中添加一个文件输入元素,绑定 change 事件处理函数。 <template>…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 Ele…

vue分页实现

vue分页实现

实现Vue分页的几种方法 使用Element UI的分页组件 安装Element UI库后,可以直接使用其分页组件。以下是一个基本示例: <template> <div>…

vue实现卡片

vue实现卡片

Vue 实现卡片组件的方法 使用 Vue 实现卡片组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 在 Vue 单文件组件中,可以通过模板和样式直接实现卡片效果…

vue登录注册实现

vue登录注册实现

实现登录注册功能 在Vue中实现登录注册功能,通常需要以下几个关键步骤:创建表单组件、处理用户输入、发送请求到后端API、管理用户状态。以下是具体实现方法: 创建登录和注册表单组件 设计两个独立的表…