父子组件传递参数/默认插槽/具名插槽

2023-10-21 10:31

本文主要是介绍父子组件传递参数/默认插槽/具名插槽,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

父子组件传递参数 

在 uni-app 中,自定义组件之间可以通过 props 和事件的方式进行参数传递。下面我将详细说明父子组件之间相互传递参数的方法:

  1. 父组件向子组件传递参数(使用 props):
    • 在子组件的 vue 文件中,通过 props 字段定义需要接收的参数。
    • 在父组件使用子组件的地方,通过绑定属性的方式将数据传递给子组件。

子组件示例代码(Child.vue):

<template><div><h2>{{ title }}</h2><p>{{ content }}</p></div>
</template><script>
export default {props: {title: {type: String,required: true},content: {type: String,default: ''}}
}
</script>

 父组件示例代码(Parent.vue):

<template><div><child-component :title="title" :content="content"></child-component></div>
</template><script>
import ChildComponent from '@/components/Child.vue';export default {components: {ChildComponent},data() {return {title: '标题',content: '内容'}}
}
</script>

  1. 子组件向父组件传递参数(使用事件):
    • 在子组件中通过 $emit 方法触发一个自定义事件,并将需要传递的数据作为参数传入。
    • 在父组件中监听子组件触发的自定义事件,并在相应的方法中获取传递的参数。

子组件示例代码(Child.vue):

<template><button @click="handleClick">点击触发事件</button>
</template><script>
export default {methods: {handleClick() {const data = '这是子组件传递的数据';this.$emit('child-event', data);}}
}
</script>

 父组件示例代码(Parent.vue):

<template><div><child-component @child-event="handleChildEvent"></child-component><p>接收子组件传递参数:{{ childData }}</p></div>
</template><script>
import ChildComponent from '@/components/Child.vue';export default {components: {ChildComponent},data() {return {childData: ''}},methods: {handleChildEvent(data) {this.childData = data;}}
}
</script>

 通过上述方法,父组件和子组件就可以相互传递参数。父组件通过 props 将数据传递给子组件,子组件通过事件将数据传递给父组件,实现了双向的参数传递。

默认插槽 

在 uni-app 中,插槽(slot)是一种用于在组件内部插入内容的机制。通过插槽,我们可以将外部传入的内容动态地插入到组件的指定位置。uni-app 支持两种类型的插槽:默认插槽和具名插槽。

  1. 默认插槽:

默认插槽是最基本的插槽类型,它允许在组件中插入任意内容。在组件的模板中使用 <slot></slot> 标签来表示默认插槽的位置。

组件示例代码(Child.vue):

<template><div><h2>我是子组件</h2><slot></slot></div>
</template><script>
export default {
}
</script>

 父组件示例代码(Parent.vue):

template><div><child-component><p>这是插入到子组件的内容</p></child-component></div>
</template><script>
import ChildComponent from '@/components/Child.vue';export default {components: {ChildComponent}
}
</script>

 在上述示例中,我们在父组件中使用了 <child-component> 标签,并在其中插入了一个 <p> 标签。这个 <p> 标签就会被动态地插入到子组件的默认插槽位置。

 

具名插槽

具名插槽允许我们在组件中定义多个插槽,并可以根据需要将内容插入到指定的插槽中。在组件的模板中使用 <slot name="插槽名称"></slot> 标签来表示具名插槽的位置。

组件示例代码(Child.vue):

 

<template><div><h2>我是子组件</h2><slot name="content"></slot><slot name="footer"></slot></div>
</template><script>
export default {
}
</script>

 父组件示例代码(Parent.vue):

<template><div><child-component><template v-slot:content><p>这是插入到内容插槽的内容</p></template><template v-slot:footer><button>提交</button></template></child-component></div>
</template><script>
import ChildComponent from '@/components/Child.vue';export default {components: {ChildComponent}
}
</script>

 

在上述示例中,我们在子组件中定义了两个具名插槽:contentfooter。在父组件中,我们使用了 <template> 标签,并通过 v-slot 指令来选择需要插入的具名插槽。在 v-slot 中,我们使用 :name 的形式指定要插入的插槽名称。

通过使用插槽,我们可以在组件中灵活地插入外部的内容,实现更高度的组件复用和定制。默认插槽和具名插槽的使用方式略有差异,但都能满足不同场景下的需求。

 

这篇关于父子组件传递参数/默认插槽/具名插槽的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/253810

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1