vue3父子组件通信

一,父传子------defineProps

方法:

在父组件的模板中使用子组件标签,并且给标签自定义属性和属性名,即通过v-bind绑定数值,而后传给子组件;子组件则通过defineProps接收使用。

父组件:

复制代码
<template>
  <div >
	<div>我是父组件</div>
    <<SonCom :fatherProp="msg" ></SonCom> -
  </div>
</template>
<script setup lang='ts'>
  import SonCom from '@/components/SonCom.vue';  // 引入子组件
  import { ref } from 'vue';
  const msg = ref<string>('coderkey')
</script>

子组件:

复制代码
<template>
  <div >
	<div>我是子组件</div>
  </div>
</template>
<script setup lang='ts'>
 import { defineProps } from 'vue';
  let prop = defineProps({
    fatherProp: {
        required: true,
        type: String,
        default: 'pink',
    }
  }) 
  console.log(prop.fatherProp)  // coderkey
</script>

二,子传父------defineEmits

方法:

复制代码
defineEmits['自定义事件名']

子组件中通过emit调用父组件中的自定义事件,给父组件的这个方法里传入数据数据。

父组件:

复制代码
<template>
  <div >
	<div>我是父组件</div>
    <<SonCom :fatherProp="msg" @update:fatherProp="fatherClick"></SonCom> -
  </div>
</template>
<script setup lang='ts'>
  import SonCom from '@/components/SonCom.vue';  // 引入子组件
  import { ref } from 'vue';
  const msg= ref<string>('coderkey')
  
  const fatherClick = (data:any) => {
  console.log(data);  // 子组件传递数据给父组件
}
</script>

子组件:

复制代码
<template>
  <div >
	<div>我是子组件</div>
	<button  @click="sendDateHandle">子传父数据</button>
  </div>
</template>
<script setup lang='ts'>
 import { defineProps,defineEmits } from 'vue';
  let prop = defineProps({
    fatherProp: {
        required: true,
        type: String,
        default: 'pink',
    }
  }) 
  console.log(prop.msg)  // coderkey
  
  let emit = defineEmits(['update:fatherProp'])
  const sendDateHandle = () => {
  	emit('update:fatherProp','子组件传递数据给父组件')
  }
</script>

相关推荐
90后的晨仔3 小时前
从 H5 到 uni-app:一篇写给前端小白的"翻译指南"
前端·vue.js·前端框架
陈随易4 小时前
moon,apt和yum之外linux系统命令安装新选择
前端·后端·程序员
IT小盘4 小时前
13-企业Prompt模板-角色任务约束与输出格式
java·前端·prompt
徐小夕5 小时前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
leslie1185 小时前
babel笔记
前端
用户059540174465 小时前
Redis 记忆存储踩坑实录:一个并发写入 Bug 让我排查了 4 小时
前端·css
小徐_23336 小时前
Wot UI 2.3.0 发布:二维码组件来了,Open Wot 与 wot-starter 同步更新
前端·微信小程序·uni-app
kyriewen6 小时前
Claude自己跑出去hack了3家公司——我为什么还在用它写代码
前端·ai编程·claude
IT_陈寒6 小时前
SpringBoot自动配置的坑,这次真踩疼我了
前端·人工智能·后端
子兮曰7 小时前
AI 浏览器 Agent 的安全困局:当自动化工具可以偷走你的登录态
前端·人工智能·后端