当前位置:首页 > 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语法糖可以简化双向数据绑定。

vue父子组件实现

子组件实现:

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

父组件使用:

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

插槽内容分发

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

子组件定义插槽:

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

父组件使用:

vue父子组件实现

<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访问子组件实例。

父组件:

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

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

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

相关文章

react组件如何通讯

react组件如何通讯

React 组件通讯方式 React 组件间的通讯方式主要包括以下几种方法,适用于不同场景下的数据传递和状态管理需求。 父子组件通讯(Props 传递) 父组件通过 props 向子组件传递数据或回…

组件elementui

组件elementui

ElementUI 简介 ElementUI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并开源。它提供了丰富的 UI 组件(如按钮、表单、表格等),适合快速构建企业级中后台产品。…

vue实现组件通信

vue实现组件通信

Vue 组件通信方法 Vue 提供了多种方式实现组件间的通信,适用于不同场景。以下是常见的方法: Props 和 Events 父组件通过 props 向子组件传递数据,子组件通过 $emit 触…

vue实现组件切换

vue实现组件切换

Vue 组件切换的实现方法 在 Vue 中实现组件切换有多种方式,以下是几种常见的方法: 动态组件 使用 Vue 内置的 <component> 元素和 is 属性可以动态切换组件:…

vue实现树组件

vue实现树组件

Vue 树形组件的实现方法 递归组件实现 使用 Vue 的递归组件特性可以轻松实现树形结构。定义一个组件,该组件能够调用自身来渲染子节点。 <template> <ul>…

vue 动态组件实现

vue 动态组件实现

vue 动态组件实现 Vue 的动态组件功能允许根据条件或用户交互动态切换不同的组件,主要通过 <component> 标签和 is 属性实现。 基本用法 通过 is 属性绑定组件名或组…