当前位置:首页 > VUE

vue 通过监听实现

2026-01-18 03:02:30VUE

监听数据变化

Vue 中可以通过 watch 选项或 $watch 方法监听数据的变化。watch 允许对特定的数据属性设置回调函数,当数据变化时自动触发。

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

监听事件

Vue 组件可以通过 v-on 指令或 $on 方法监听自定义事件。子组件可以通过 $emit 触发事件,父组件监听并处理。

// Child Component
this.$emit('custom-event', payload)

// Parent Component
<child-component @custom-event="handleEvent" />

监听 DOM 事件

在模板中可以直接使用 v-on 监听原生 DOM 事件,如点击、输入等。

vue 通过监听实现

<button @click="handleClick">Click me</button>
<input @input="handleInput" />

深度监听对象

当需要监听对象或数组内部变化时,可以设置 deep: true 选项。这对于嵌套数据结构特别有用。

watch: {
  obj: {
    handler(newVal) {
      console.log('Object changed', newVal)
    },
    deep: true
  }
}

立即触发监听

设置 immediate: true 可以让监听回调在初始赋值时立即执行一次,而不必等待第一次变化。

vue 通过监听实现

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

监听路由变化

在 Vue Router 中可以通过 watch 监听 $route 对象的变化,响应路由参数或路径的改变。

watch: {
  '$route'(to, from) {
    console.log('Route changed from', from.path, 'to', to.path)
  }
}

计算属性监听

虽然计算属性本身是响应式的,但可以通过 watch 监听计算属性的变化,执行特定逻辑。

computed: {
  fullName() {
    return this.firstName + ' ' + this.lastName
  }
},
watch: {
  fullName(newVal) {
    console.log('Full name changed to', newVal)
  }
}

监听多个数据源

可以使用数组形式同时监听多个数据源,回调函数会接收对应顺序的新旧值数组。

watch: {
  ['a', 'b'](newVals, oldVals) {
    console.log('a changed from', oldVals[0], 'to', newVals[0])
    console.log('b changed from', oldVals[1], 'to', newVals[1])
  }
}

标签: vue
分享给朋友:

相关文章

vue实现自定义登录

vue实现自定义登录

实现自定义登录的基本步骤 在Vue中实现自定义登录功能通常需要结合前端和后端技术。以下是一个基本的实现流程: 创建登录表单组件 使用Vue的单文件组件创建一个登录表单,包含用户名和密码输入框以及提交…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue交互实现

vue交互实现

Vue 交互实现方法 Vue.js 提供了多种方式实现用户交互,包括事件处理、表单绑定、动态渲染等。以下是常见的交互实现方法: 事件处理 通过 v-on 或 @ 指令绑定事件,触发方法或直接执行表达…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue 实现拖动

vue 实现拖动

Vue 实现拖动的几种方法 在Vue中实现拖动功能可以通过多种方式,包括原生HTML5的拖放API、第三方库如vuedraggable等。以下是几种常见的实现方法: 使用HTML5拖放API HTM…

vue实现groupbox

vue实现groupbox

Vue 实现 GroupBox 组件 在 Vue 中实现类似 GroupBox 的效果可以通过自定义组件完成。GroupBox 通常是一个带有标题的边框容器,用于将相关控件分组显示。 基本实现方法…