1、父传子

父页面

<template>
  //传递参数
  <Test :userType="userType"></Test>
</template>
<script setup>
//引入子组件
import Test from '@/components/test/index.vue'
import { ref } from 'vue'

// 定义要给子组件传递的参数
const userType = ref('admin')
</script>

子组件

<script setup>
import { defineProps } from 'vue'

//周期函数
onMounted(() => {
	//打印父组件传递的值
  console.log(props.userType, 'userType')
})

//定义参数 已经选中的ITEMID
const props = defineProps({
  userType: {
    type: String, //参数类型
    default: String, //默认值
    required: true, //是否必须传递
  }
})
</script>

2、子传父

父页面

//接收子组件定义的事件
<Test @userName="userName"></Test>
// 接收子组件传递的参数
function userName(value) {
	//打印子组件传递的事件
  console.log(value, 'value')
}
//子组件
<template>
  <el-button type="danger" @click="clickEmit">点击传参</el-button>
</template>

子组件

<script setup>
import { ref, defineEmits } from 'vue'

// 定义一个参数
const userName = ref('阿凡')

// 定义emit
const emits = defineEmits(['userName'])

// 点击传参
function clickEmit() {
  /**
   * 第一个参数 -> 事件名称
   * 第二个参数--->要传递的值
   * **/
  emits('userName', userName.value)
}
</script>
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐