当前位置:首页 > VUE

vue父子组件实现

2026-02-19 21:26:02VUE

父子组件通信方式

Vue中父子组件通信主要通过props和自定义事件实现。父组件向子组件传递数据使用props,子组件向父组件传递数据使用自定义事件。

父组件向子组件传值

父组件通过props向下传递数据给子组件。子组件需要显式声明接收的props。

父组件模板:

<template>
  <child-component :message="parentMessage"></child-component>
</template>

子组件接收:

export default {
  props: ['message'],
  // 或者带类型检查
  props: {
    message: String
  }
}

子组件向父组件传值

子组件通过$emit触发自定义事件,父组件通过v-on监听这些事件。

子组件触发事件:

this.$emit('update', newValue)

父组件监听:

<child-component @update="handleUpdate"></child-component>

双向绑定实现

使用v-model语法糖可以简化双向数据绑定。

子组件实现:

export default {
  model: {
    prop: 'value',
    event: 'input'
  },
  props: ['value']
}

父组件使用:

<child-component v-model="parentData"></child-component>

插槽内容分发

父组件可以通过插槽向子组件传递模板内容。

子组件定义插槽:

<slot name="header"></slot>
<slot></slot>  <!-- 默认插槽 -->

父组件使用:

<child-component>
  <template v-slot:header>
    <h1>标题</h1>
  </template>
  <p>默认内容</p>
</child-component>

依赖注入

对于深层嵌套组件,可以使用provide/inject避免逐层传递props。

祖先组件:

export default {
  provide() {
    return {
      sharedData: this.sharedData
    }
  }
}

后代组件:

export default {
  inject: ['sharedData']
}

访问组件实例

父组件可以通过ref访问子组件实例。

父组件:

vue父子组件实现

<child-component ref="child"></child-component>
this.$refs.child.methodName()

子组件可以通过$parent访问父组件实例,但不推荐这种紧耦合方式。

标签: 父子组件
分享给朋友:

相关文章

vue实现搜索组件

vue实现搜索组件

Vue 实现搜索组件的方法 基础搜索组件实现 创建基础搜索组件需要包含输入框和搜索按钮。在Vue中可以使用v-model绑定输入值,通过@click或@keyup.enter触发搜索。 <te…

vue组件实现computed

vue组件实现computed

Vue 组件中实现 computed 的方法 在 Vue 组件中,computed 用于声明计算属性,根据依赖的响应式数据动态计算并返回结果。计算属性具有缓存机制,只有当依赖的数据发生变化时才会重新计…

vue组件实现返回

vue组件实现返回

实现返回功能的 Vue 组件方法 监听浏览器返回事件 通过 window.addEventListener('popstate', callback) 监听浏览器返回按钮事件,在回调函数中执行自定义逻…

实现vue全局组件

实现vue全局组件

注册全局组件 在Vue中注册全局组件可以通过Vue.component方法完成。该方法接受两个参数:组件名称和组件选项对象。全局注册的组件可以在任何Vue实例的模板中使用,无需再次注册。 impor…

vue 组件实现原理

vue 组件实现原理

Vue 组件实现原理 Vue 组件的实现原理主要基于以下几个核心机制: 组件注册与定义 Vue 组件可以通过 Vue.component 全局注册或局部注册。组件定义通常包含模板(template)…

vue父子组件实现

vue父子组件实现

Vue 父子组件通信实现 Vue 父子组件通信主要通过 props 和 events 实现,父组件向子组件传递数据使用 props,子组件向父组件传递数据使用自定义事件。 父组件向子组件传递数据 父…