版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
跨级组件之间的数据传递3.7掌握跨级组件之间的传递数据的方法,能够使用依赖注入实现数据共享3.7跨级组件之间的数据传递
先定一个小目标!如何实现跨级组件之间的数据传递?3.7跨级组件之间的数据传递Vue提供了跨级组件之间数据传递的方式——依赖注入。一个父组件相对于其所有的后代组件而言,可作为依赖提供者。而任何后代的组件树,无论层级多深,都可以注入由父组件提供的依赖。对于父组件而言,如果要为后代组件提供数据,需要使用provide()函数。对于子组件而言,如果想要注入上层组件或整个应用提供的数据,需要使用inject()函数。3.7跨级组件之间的数据传递1.provide()函数provide()函数可以提供一个值,用于被后代组件注入。provide()函数的语法格式如下。provide(注入名,注入值)provide()函数可以接收2个参数,第1个参数是注入名,后代组件会通过注入名查找所需的注入值;第2个参数是注入值,值可以是任意类型,包括响应式数据,例如通过ref()函数创建的数据。3.7跨级组件之间的数据传递<script>import{ref,provide}from'vue'exportdefault{setup(){constcount=ref(1)provide('message',count)}}</script>在不使用setup语法糖的情况下,provide()函数必须在组件的setup()函数中调用。使用provide()函数的示例代码如下。3.7跨级组件之间的数据传递<scriptsetup>import{provide}from'vue'provide('message','HelloVue.js')</script>当使用setup语法糖时,使用provide()函数的示例代码如下。constapp=createApp(App)vide('message','HelloVue.js')provide()函数除了可以在某个组件中提供依赖外,还可以全局提供依赖。例如,在src\main.js文件中添加全局依赖,示例代码如下3.7跨级组件之间的数据传递2.inject()函数通过inject()函数可以注入上层组件或者整个应用提供的数据。inject()函数的语法格式如下。inject(注入值,默认值,布尔值)inject()函数有3个参数。第1个参数是注入值,Vue会遍历父组件,通过匹配注入的值来确定所提供的值,如果父组件链上多个组件为同一个数据提供了值,那么距离更近的组件将会覆盖更远的组件所提供的值。3.7跨级组件之间的数据传递第2个参数是可选的,用于在没有匹配到注入的值时使用默认值。第2个参数可以是工厂函数,用于返回某些创建起来比较复杂的值。如果提供的默认值是函数,还需要将false作为第3个参数传入,表明这个函数就是默认值,而不是工厂函数。第3个参数是可选的,类型为布尔值,当参数值为false时,表示默认值是函数;当参数值为true时,表示默认值为工厂函数;当省略参数值时,表示默认值为其他类型的数据,不是函数或工厂函数。3.7跨级组件之间的数据传递<script>import{inject}from'vue';exportdefault{setup(){constcount=inject('count')constfoo=inject('foo','defaultvalue')
constbaz=inject('foo',()=>newMap())constfn=inject('function',()=>{},false)}}</script>在不使用setup语法糖的情况下,inject()函数必须在组件的setup()函数中调用。使用inject()函数的示例代码如下。3.7跨级组件之间的数据传递<scriptsetup>import{inject}from'vue';constcount=inject('count')</script>当使用setup语法糖时,使用inject()函数的示例代码如下。3.7跨级组件之间的数据传递步骤1创建src\components\ProvideChildren.vue文件,用于展示子组件中的相关内容。步骤3步骤4步骤2步骤5演示跨级组件之间的数据传递3.7跨级组件之间的数据传递步骤1步骤3步骤4步骤2步骤5演示跨级组件之间的数据传递创建src\components\ProvideParent.vue文件,用于展示父组件中的相关内容。3.7跨级组件之间的数据传递步骤3步骤4步骤2步骤5步骤1演示跨级组件之间的数据传递创建src\components\ProvideGrand.vue文件,用于展示父组件的父组件(即爷爷组件)中的相关内容3.7跨级组件之间的数据传递步骤3步骤4步骤2步骤5步骤1修改src\components\ProvideChildren.vue文件,通过inject()函数接收爷爷组件中传过来的数据。演示跨级组件之间的数据传递3.7跨级组件之间的数据传递步骤3步骤4步骤2步骤5步骤1修改src\main.js文件,切换页面中显示的组件。importAppfrom'./components/ProvideGrand.vue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PE管材生产线项目运营管理方案
- 让知识之光照亮未来-小学主题班会课件
- 消防安全应急演练培训小学主题班会课件
- 人力资源管理中的人才招聘与选拔手册
- 关于2026年供应商变更情况的确认函(7篇)
- 关于产品线优化调整项目进度确认函(8篇)
- 商务合作模式变更商洽函7篇范本
- 汽轮机扣盖施工方案及技术措施
- 某生态复绿项目(市政)绿化工程水土保持施工方案
- 防火门安装工程施工方案
- 燃气锅炉的低氮改造方案【研究报告】
- CJJ1-2025城镇道路工程施工与质量验收规范
- 2024专利代理人考试真题及答案
- 47届世界技能大赛江苏省选拔赛机电一体化项目技术文件
- 智能楼宇管理员职业技能竞赛(市赛)考试题库(含答案)
- 量子力学+周世勋(全套完整)课件
- 新郑龙湖学院机电安装施工组织设计
- 有趣的行为金融学智慧树知到期末考试答案章节答案2024年上海海洋大学
- 废水检验知识讲座
- 月嫂个人简历范本通用模板
- 新人教版-八年级数学下册-勾股定理课件(第一课时)
评论
0/150
提交评论