当前位置: 首页 > news >正文

vue3组件传值

1.父向子传值

父组件

引入子组件

import Son from './components/Son.vue'

设置响应式数据

const num = ref(99)

绑定到子组件

 <Son :num="num"></Son>

子组件

引入defineProps

import { defineProps } from 'vue';

生成实例接收数据

type设置接收类型,可以是数组形式,接收多种类型

default设置默认值

const prop = defineProps({num: {type: Number,default: 18}
})

--------------------------------------------------------------------------------------------------------------------------

2.子向父传值

子组件

引入defineEmits

import { defineEmits } from 'vue';

 生成实例,函数内参数可以不写,参数为要抛出的事件名

const emit = defineEmits(['doMessage'])

设置点击按钮

   <button @click="doClick">San组件按钮</button>

定义事件函数-使用实例emit抛出事件和值

const doClick = () => {emit('doMessage', '我是son里的数据')
}

父组件

子组件标签接收抛出事件

  <Son @doMessage="doMessage"></Son>

定义执行函数--函数的形参接收子组件抛出的值

const doMessage = (e) => {console.log(e);
}

--------------------------------------------------------------------------------------------------------------------------

3.后代组件传值

祖先组件

app.vue组件引入

import { ref, provide } from "vue";

设置响应数据和注入数据

const num = ref(999)
provide('appNum', num)

后代组件

后代组件引入

import { inject } from 'vue';

使用变量接收

const appNum = inject('appNum')

One.vue和Two.vue就可以接收祖先组件里的数据

--------------------------------------------------------------------------------------------------------------------------

祖先组件

app.vue组件引入

import { provide } from "vue";

定义函数

const appFn = (e) => {console.log('appFn祖先', e);
}

并向后代组件传递函数

provide('appFn', appFn)

后代组件

引入函数

import { inject } from 'vue';

接收组件传递的函数

const appFn = inject('appFn')

设置按钮,注册点击事件,执行函数使用祖先传递的函数

 <button @click="appFn"></button>

函数被执行

 点击时执行函数传递参数

 <button @click="appFn('Two组件触发的祖先函数')">按钮</button>

祖先组件成功接收参数

 

http://www.lryc.cn/news/43780.html

相关文章:

  • 小白开发微信小程序00--文章目录
  • 随手记录第九话 -- Java框架整合篇
  • 电影《铃芽之旅》观后感
  • Web自动化测试(二)(全网最给力自动化教程)
  • 【C语言经典例题!】逆序字符串
  • 21 - 二叉树(三)
  • 【A-Star算法】【学习笔记】【附GitHub一个示例代码】
  • 纽扣电池澳大利亚认证的更新要求
  • 零代码零距离,明道云开放日北京站圆满结束
  • 第五章Vue路由
  • Git常用指令
  • Java每日一练(20230329)
  • 【面试题】JS的一些优雅写法 reduce和map
  • 【蓝桥杯真题】包子凑数(裴蜀定理、动态规划、背包问题)
  • 一种免费将PDF转word的方式
  • MyBatis-面试题
  • jQuery一些问题和ajax操作
  • Pytorch构建自己的数据集
  • 信息论小课堂:纠错码(海明码在信息传输编码时,通过巧妙的信道编码保证有了错误能够自动纠错。)
  • MySQL执行计划(explain)
  • 思必驰回复第二轮审核问询,如何与科大讯飞、阿里巴巴“虎口夺食”?
  • 基于Spring、SpringMVC、MyBatis的汽车租赁系统设计
  • 读《刻意练习》后感,与原文好句摘抄
  • 华为OD机试用java实现 -【选座位】
  • 国产蓝牙耳机怎么挑选?口碑最好的国产蓝牙耳机
  • seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
  • ❤️独特的算法❤️:一文解决编辑距离问题
  • 三次样条样条:Bézier样条和Hermite样条
  • Redis面试题 (2023最新版)
  • 基于springboot实现家乡特色食品景点推荐系统【源码+论文】分享