vue3父子组件传值中props使用细节浅析

vue3父子组件传值中props使用细节浅析

目录

setup函数的参数

一、父组件要给子组件传值时,可以通过props来完成组件的通信

二、子组件给父组件传值

总结

setup函数的参数

它主要有两个参数:

第一个参数:props :父组件传递过来的属性会被放到props对象中

第二个参数:context:包含3个属性

attrs:所有的非prop的attribute

slots:父组件传递过来的插槽(这个在以渲染函数返回时会有作用,后面会讲到)

emit:当我们组件内部需要发出事件时会用到emit

一、父组件要给子组件传值时,可以通过props来完成组件的通信 // 父组件 <template> // 通过自定义属性的方式给子组件传递数据 <message title="父组件中的值"></message> </template> // 子组件 <template> // 使用父组件传递过来的值 <h2> {{title}} </h2> </template> <script> export default { // 通过props 接收父组件传递过来的数据,模板中可以直接使用 props: ['title'], setup(props, context) { // setup函数中要使用的话,要接收一下 console.log(props.title) } </script>

子组件中props两种常见的用法

方式一:字符串数组,数组中的字符串就是父组件中引用子组件时自定义attribute的名称

方式二:对象类型,我们可以在指定attribute名称的同时,指定它需要传递的类型,是否时必须的,默认值等

细节一:props中属性可以指定的类型

String

Number

Boolean

Array

Object

Date

Function

Symbol

细节二:props中不同类型的写法

props: { // 基础类型指定 propA: Number, // 指定多个类型 propB: [String, Number], // 指定必传类型 propC: { type: String, required: true }, // 带有默认值的数字 propD: { type: Number, default: 100 }, // 带有默认值的对象 propE: { type: Object, // 对象或数组默认值必须从一个工厂函数获取 default() { return { mes: 'lihua'} } }, // 自定义验证函数 propF: { validator(value) { return ['warning', 'success'].includes(value) } }, // 具有默认值的函数 prorG: { type: Function, default() { return 'default function' } } }

细节三:Props的大小写命名

属性命名不推荐驼峰命名法法,需要用 a-b(短横线分隔命名)

二、子组件给父组件传值

父组件

//父组件 <template> // 给子组件传递自定义函数 <message @add="addNum"></message> </template> <script> export default { components: { message } setup() { const addNum = (value) => { // 接收子组件传递过来的值 console.log(value) } // 导出方法提供给模板使用 return { addNum } } </script>

子组件

//子组件 <template> // 使用父组件传递过来的值 <button @click="increment"></button> </template> <script> export default { // 1. 通过第二个参数 context 接收父组件传递过来的方法 setup(props, context) { const increment = () => { // 通过 context.emit触发父组件的方法,第二个参数为传递的参数,可以传递多个 context.emit('add', 100) context.emit('add', 100, 'aaa', 'bbb') } // 导出方法提供给模板使用 return { increment } } // 2. 通过第二个参数 解构 emits 接收父组件传递过来的函数 setup(props, { emit }) { const increment = () => { // 通过emit触发父组件的方法,第二个参数为传递的参数,可以传递多个 emit('add', 100) emit('add', 100, 'aaa', 'bbb') } return { increment } } } </script> 总结

到此这篇关于vue3父子组件传值中props使用细节的文章就介绍到这了,更多相关vue3父子组件传值内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    魅蓝note6性能参数有哪些

    魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    扬声器属性级别设置|扬声器属性高级

    扬声器属性级别设置|扬声器属性高级,,1. 扬声器属性高级选择“高级”标签试试,不行的话,说明系统有问题了,直接换个验证过的系统盘重装系统就

    设置总账参数|用友u8设置总账参数

    设置总账参数|用友u8设置总账参数,,1. 用友u8设置总账参数1、首先要点开数据权限控制设置;2、选择想要设置控制的单据;3、打开后看到左上角