vue3.x 组件间传参

Vue组件间通信方式

1. 父组件给子组件传参最好的方式用:

props,插槽,$attrs$parent/$children

$attrs/$listeners

  1. $attrs 中包含了所有父作用域中所有未进行 prop 声明的属性,class 和 style 除外。
  2. $listeners 中包含了父作用域中不含 .native 修饰器的所有 v-on 事件。(vue3中已经移除,全部交给$attrs处理)

父子:$parent/$children

  1. $parent 可以获取父组件的实例。

  2. c h i l d r e n 可以获取当前组件的所有子组件实例。 ( v u e 3 中没有 ‘ children 可以获取当前组件的所有子组件实例。(vue3中没有` children可以获取当前组件的所有子组件实例。(vue3中没有children,如果你需要访问子组件实例,我们建议使用ref`)

    vue3获取ref元素

2. 子组件给父组件传参:

自定义事件,props,ref。

自定义数据传参三条原则:

  1. A 组件想让 B 组件给自己传数据,那么就要给 B 组件绑定自定义事件。
  2. 自定义事件的回调在哪,哪才能接收到数据。
  3. 适用于 子给父传递数据。
// 父组件 APP
<div class="app">
		<h1>{
  {msg}},学生姓名是:{
  {studentName}}</h1>
		<!-- 通过父组件给子组件传递函数类型的props实现:子给父传递数据 -->
		<School :getSchoolName="getSchoolName"/>
		<!-- 通过父组件给子组件绑定一个自定义事件实现:子给父传递数据(第一种写法,使用@或v-on)-->
		<Student @atguigu="getStudentName" @demo="m1"/>
		<!-- 通过父组件给子组件绑定一个自定义事件实现:子给父传递数据(第二种写法,使用ref)-->
		
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue3中,使用`setup`语法可以在组件中定义逻辑。通过组件实时传参的实现有多种方式。 一种方式是使用`defineEmits`和`emit`来实现子组件组件传值。在子组件`waterFall.vue`中,可以使用`defineEmits`定义一个事件`on-click`,然后在`send`方法中使用`emit`来触发该事件,并传递参数。在组件`App.vue`中,可以在子组件标签上使用`@on-click`绑定一个方法,当子组件触发`on-click`事件时,组件的方法将被调用,传入子组件传递的参数。 另一种方式是通过`defineProps`来接收组件传递的参数。在子组件`waterFall.vue`中,可以使用`defineProps`定义一个属性`title`,并设置其类型和默认值。在组件`App.vue`中,可以在子组件标签上使用`:title`将值传递给子组件的`title`属性。 综上所述,通过使用`defineEmits`和`emit`可以实现子组件组件实时传参,而使用`defineProps`可以实现组件向子组件实时传参。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Vue3】组件传参](https://blog.csdn.net/XiugongHao/article/details/131971259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值