返回
插槽和父子组件通信
前端
2023-12-01 00:53:02
插槽
插槽是组件使用者在自定义组件中插入自己的 HTML 代码的占位符。插槽的语法为<slot></slot>
. 组件使用者可以在自定义组件的 HTML 代码中添加多个插槽,每个插槽都可以插入不同的 HTML 代码。
例如,以下自定义组件包含两个插槽:
<template>
<div>
<slot name="header"></slot>
<slot></slot>
<slot name="footer"></slot>
</div>
</template>
组件使用者可以将以下 HTML 代码插入这个自定义组件中:
<my-component>
<div slot="header">这是头部</div>
<div>这是正文</div>
<div slot="footer">这是尾部</div>
</my-component>
最终渲染的结果将是:
<div>
<div>这是头部</div>
<div>这是正文</div>
<div>这是尾部</div>
</div>
父子组件通信
父子组件通信是指组件之间传递数据。父子组件通信可以通过以下几种方式实现:
- 属性传递: 父组件可以通过属性传递数据给子组件。子组件可以通过
this.props
访问这些属性。 - 事件传递: 子组件可以通过触发事件来通知父组件。父组件可以通过
this.$on
监听这些事件。 - 函数传递: 父组件可以通过函数传递给子组件。子组件可以通过调用这些函数来操作父组件的数据。
例如,以下父组件通过属性传递数据给子组件:
<template>
<div>
<my-component :title="title"></my-component>
</div>
</template>
<script>
export default {
data() {
return {
title: '这是标题'
}
}
}
</script>
以下子组件通过this.props
访问父组件传递的数据:
<template>
<div>
<h1>{{ title }}</h1>
</div>
</template>
<script>
export default {
props: ['title']
}
</script>
总结
插槽和父子组件通信是自定义组件中两个重要的概念。插槽允许组件使用者在自定义组件中插入自己的 HTML 代码,父子组件通信允许组件之间传递数据。通过使用插槽和父子组件通信,我们可以构建出更灵活、更可复用的组件。