淘先锋技术网

首页 1 2 3 4 5 6 7

Vue 是一个广泛使用的前端框架,其核心特性之一就是响应式(Reactivity)系统。当数据变化时,Vue 会自动重新渲染页面,以保证视图与状态的同步。

vue updated emit

在某些情况下,我们需要在子组件中监听父组件传递的数据变化。Vue 提供了一个名为 emit 的方法,用于在子组件中触发父组件的事件。在父组件中监听该事件后,即可响应子组件传来的数据变化。


// 子组件示例
Vue.component('child-component', {
  template: `
    

{{ message }}

`, data() { return { message: 'Hello' } }, methods: { updateMessage() { this.message = 'Hello from child' this.$emit('update:message', this.message) } } }) // 父组件示例 new Vue({ el: '#app', data() { return { parentMessage: '' } }, methods: { updateParentMessage(message) { this.parentMessage = message } }, mounted() { this.$on('update:message', this.updateParentMessage) } })

在上面代码中,子组件通过 updateMessage 方法更新 message 的值,并通过 this.$emit 触发 update:message 事件,将更新后的 message 值传递给父组件。父组件在 mounted 钩子中使用 this.$on 监听 update:message 事件,并在回调函数中更新 parentMessage 的值。

此时,当子组件中的 message 值发生变化时,父组件会立即同步更新 parentMessage 的值,从而保持视图与状态的同步。