Vue3 父子组件传值, 跨组件传值,传函数
目录
1.父组件向子组件传值
1.1 步骤
1.2 格式
2. 子组件向父组件传值
1.1 步骤
1.2 格式
3. 跨组件传值
运行
4. 跨组件传函数
5. 总结
1. 父传子
2. 子传父
3. 跨组件传值(函数)
1.父组件向子组件传值
1.1 步骤
- 在父组件中引入子组件
- 在子组件标签中自定义属性
- 在子组件里使用definePorps(["属性名"])获取
1.2 格式
父组件:
<Down propMsg = '值' />
<子组件名 自定义属性名 = '值'
子组件:const emits = defineProps( [ ' 自定义属性名 ' ] )
2. 子组件向父组件传值
1.1 步骤
- 在子组件中自定义事件
- 在子组件中使用defineEmits定义对象
- 使用对象(事件名.{参数})
1.2 格式
子传父
父组件
<Down @emitsMsg = '函数名'
<子组件名 @自定义事件 = '函数名'
子组件
const emits = defineEmits( [ " emitMsg " ] )
const emits = defineEmits( [ ' 自定义事件名 ' ] )
3. 跨组件传值
也就是 A是B的父组件 , B是C的父组件 , 而A组件需要给C组件传递参数(值,对象,响应式数据等)
首先准备三个vue文件
在App(爷组件)中, 定义一个数据, 并用provide函数, 引入Son.vue(子组件)
在Son.vue中引入sonson.vue组件(孙组件)
在sonson.vue组件中, 用inject()函数去获取值
运行
4. 跨组件传函数
与跨组件传值类似, 只不过是将一个值 换成了 函数
首先定义一个函数, 然后通过provide()进行传函数
5. 总结
1. 父传子
在父组件中自定义属性名, 然后在子组件中, 使用defineProps( [ ' 属性名 ' ] ) 获取值
2. 子传父
在父组件中自定义事件名, 然后子组件用defineEmits( [ ' 事件名 ' ] )来创建对象, 再通过对象调用函数对父组件进行传值
3. 跨组件传值(函数)
首先在爷组件中定义数据, 然后使用 provide( ' 数据名 ' , 数据 ) 传递数据. 在孙子组件中, 使用inject( ' 数据名 ' ) 函数来接收数据