vue3组件传参(子传父、父传子)

子传父

子组件1(Navigator.vue):

<script setup>

  // 定义一个向父组件App.vue提交数据的事件
  const emits = defineEmits(["sendData"])

  function send(data){
    // 向父组件App.vue提交数据
    emits("sendData",data)
  }

</script>

<template>
  <div>
    <ul>
      <li @click="send('列表项1')">列表项1</li>
      <li @click="send('列表项2')">列表项2</li>
      <li @click="send('列表项3')">列表项3</li>
      <li @click="send('列表项4')">列表项4</li>
      <li @click="send('列表项5')">列表项5</li>
      <li @click="send('列表项6')">列表项6</li>
    </ul>
  </div>
</template>

父组件(App.vue):

<script setup>

  import Content from './components/Content.vue'
  import Navigator from './components/Navigator.vue'
  import {ref} from 'vue'

  let msg = ref("")

  // 该函数用于接收Navigator.vue子组件传递的参数
  function receiveData(data){
    msg.value = data
  }

</script>

<template>
  <div>
    <!--  @子组件自定义时间名="函数",用于接收子组件Navigator.vue传递的参数,@sendData与子组件Navigator.vue中defineEmits(["sendData"])定义的sendData对应  -->
    <Navigator @sendData="receiveData" class="navigator"></Navigator>
    <!--  向子组件Content.vue中传递数据,以绑定属性的方式  -->
    <Content :data="msg" class="content"></Content>
  </div>
</template>

父传子

子组件2(Content.vue):

<script setup>

  // 接收父组件App.vue传递的参数
  let msg = defineProps({
    // 这里的data与父组件App.vue中Content标签内的:data对应
    data:String
  })

</script>

<template>
  <div>
    {{msg.data}}
  </div>
</template>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值