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

寮步网站建设哪家好东莞网站建设市场

寮步网站建设哪家好,东莞网站建设市场,网站建设服务哪家好,网站建设业务怎么做目录 前言1. 基本知识2. Demo3. 拓展 前言 原先写过一篇父传子,推荐阅读:详细分析Vue3中的props用法(父传子) 实战中也常用这种方式,今天突然发现还有另外一种方式,对此进行深入探讨学习下 1. 基本知识 …

目录

  • 前言
  • 1. 基本知识
  • 2. Demo
  • 3. 拓展

前言

原先写过一篇父传子,推荐阅读:详细分析Vue3中的props用法(父传子)

实战中也常用这种方式,今天突然发现还有另外一种方式,对此进行深入探讨学习下

1. 基本知识

在 Vue 3 中,provide 和 inject 是用于组件间数据共享的 API,允许父组件向子组件传递数据而不需要通过 props 一层层传递

  • provide
    在父组件中定义,可以提供数据给其所有子孙组件
    该数据可以是任何类型(对象、数组、基本数据类型等)

  • inject
    在子组件中使用,用于接收来自祖先组件提供的数据
    通过 inject,子组件可以直接使用父组件提供的数据,而无需通过 props

基本的步骤也很简单,就是父组件使用provide提供数据,子组件使用inject接收数据

2. Demo

基本的项目结构如下:

my-vue-app
├── src
│   ├── components
│   │   ├── ParentComponent.vue
│   │   ├── ChildComponent.vue
│   ├── App.vue
│   ├── main.js

创建一个父组件 ParentComponent.vue,在其中提供一些数据

<!-- src/components/ParentComponent.vue -->
<template><div><h2>父组件</h2><p>提供的主题颜色: {{ themeColor }}</p><ChildComponent /></div>
</template><script>
import { provide, ref } from 'vue';
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},setup() {// 创建一个响应式变量const themeColor = ref('blue');// 使用 provide 提供数据provide('themeColor', themeColor);return {themeColor};}
};
</script>
  1. 创建子组件
    创建一个子组件 ChildComponent.vue,在其中注入父组件提供的数据
<!-- src/components/ChildComponent.vue -->
<template><div><h3>子组件</h3><p>使用的主题颜色: {{ themeColor }}</p></div>
</template><script>
import { inject } from 'vue';export default {setup() {// 使用 inject 获取提供的数据const themeColor = inject('themeColor');return {themeColor};}
};
</script>
  1. 更新 App.vue
    在 App.vue 中使用父组件:
<template><div id="app"><ParentComponent /></div>
</template><script>
import ParentComponent from './components/ParentComponent.vue';export default {components: {ParentComponent}
};
</script>

3. 拓展

通过按钮点击改变主题颜色

相关的结构如下:

my-vue-app
├── src
│   ├── components
│   │   ├── ParentComponent.vue
│   │   ├── ChildComponent.vue
│   │   ├── ColorChanger.vue
│   ├── App.vue
│   ├── main.js
  1. 在父组件 ParentComponent.vue 中提供一个状态(主题颜色)和一个方法(改变颜色):
<!-- src/components/ParentComponent.vue -->
<template><div><h2>父组件</h2><p>当前主题颜色: {{ themeColor }}</p><ChildComponent /><ColorChanger /></div>
</template><script>
import { provide, ref } from 'vue';
import ChildComponent from './ChildComponent.vue';
import ColorChanger from './ColorChanger.vue';export default {components: {ChildComponent,ColorChanger},setup() {// 创建一个响应式变量const themeColor = ref('blue');// 方法:改变颜色const changeColor = (newColor) => {themeColor.value = newColor;};// 使用 provide 提供数据和方法provide('themeColor', themeColor);provide('changeColor', changeColor);return {themeColor};}
};
</script>
  1. 创建子组件
    在子组件 ChildComponent.vue 中注入并使用主题颜色:
<!-- src/components/ChildComponent.vue -->
<template><div><h3>子组件</h3><p>使用的主题颜色: {{ themeColor }}</p></div>
</template><script>
import { inject } from 'vue';export default {setup() {// 使用 inject 获取提供的数据const themeColor = inject('themeColor');return {themeColor};}
};
</script>
  1. 创建颜色改变组件
    在 ColorChanger.vue 中注入并使用改变颜色的方法:
<!-- src/components/ColorChanger.vue -->
<template><div><h3>颜色改变器</h3><button @click="changeColor('red')">红色</button><button @click="changeColor('green')">绿色</button><button @click="changeColor('blue')">蓝色</button></div>
</template><script>
import { inject } from 'vue';export default {setup() {// 使用 inject 获取提供的方法const changeColor = inject('changeColor');return {changeColor};}
};
</script>
  1. 更新 App.vue
    在 App.vue 中使用父组件:
<template><div id="app"><ParentComponent /></div>
</template><script>
import ParentComponent from './components/ParentComponent.vue';export default {components: {ParentComponent}
};
</script>

截图如下:

在这里插入图片描述


文章转载自:
http://wanjiaembryogeny.Lbqt.cn
http://wanjiaunitarity.Lbqt.cn
http://wanjiamultiprogramming.Lbqt.cn
http://wanjiawrestle.Lbqt.cn
http://wanjiachemisorb.Lbqt.cn
http://wanjiaoverwound.Lbqt.cn
http://wanjiastalactiform.Lbqt.cn
http://wanjiacircumcise.Lbqt.cn
http://wanjiadiastyle.Lbqt.cn
http://wanjiacokefiend.Lbqt.cn
http://wanjiamodification.Lbqt.cn
http://wanjiaogaden.Lbqt.cn
http://wanjiaflutey.Lbqt.cn
http://wanjiamaladminister.Lbqt.cn
http://wanjiahybridization.Lbqt.cn
http://wanjiapareu.Lbqt.cn
http://wanjiadespecialize.Lbqt.cn
http://wanjiaanarchic.Lbqt.cn
http://wanjiahydrogenium.Lbqt.cn
http://wanjiaoccident.Lbqt.cn
http://wanjiadepredation.Lbqt.cn
http://wanjiaunstinted.Lbqt.cn
http://wanjiashastra.Lbqt.cn
http://wanjiasfa.Lbqt.cn
http://wanjiasupercontract.Lbqt.cn
http://wanjiaquinquefoil.Lbqt.cn
http://wanjiatouchwood.Lbqt.cn
http://wanjiasemiquantitative.Lbqt.cn
http://wanjiabiparental.Lbqt.cn
http://wanjiabibliothetic.Lbqt.cn
http://wanjiaofficiate.Lbqt.cn
http://wanjiasorrowful.Lbqt.cn
http://wanjiabushfighting.Lbqt.cn
http://wanjiadenature.Lbqt.cn
http://wanjiarenoiresque.Lbqt.cn
http://wanjiaphenogam.Lbqt.cn
http://wanjiasplatter.Lbqt.cn
http://wanjiabarely.Lbqt.cn
http://wanjiacookhouse.Lbqt.cn
http://wanjialineal.Lbqt.cn
http://wanjiatripetalous.Lbqt.cn
http://wanjiamoldiness.Lbqt.cn
http://wanjianominalism.Lbqt.cn
http://wanjiaunlearned.Lbqt.cn
http://wanjiascoutmaster.Lbqt.cn
http://wanjiahrvatska.Lbqt.cn
http://wanjiaevalina.Lbqt.cn
http://wanjiakincob.Lbqt.cn
http://wanjialeu.Lbqt.cn
http://wanjiaretaliatory.Lbqt.cn
http://wanjiadandify.Lbqt.cn
http://wanjiagibeonite.Lbqt.cn
http://wanjiaspeckless.Lbqt.cn
http://wanjiamolly.Lbqt.cn
http://wanjiaslovenry.Lbqt.cn
http://wanjiavaticinate.Lbqt.cn
http://wanjiabranny.Lbqt.cn
http://wanjiavapoury.Lbqt.cn
http://wanjiazaftig.Lbqt.cn
http://wanjiadependability.Lbqt.cn
http://wanjiasubdivisible.Lbqt.cn
http://wanjiakamptulicon.Lbqt.cn
http://wanjiadelimiter.Lbqt.cn
http://wanjiamatchboard.Lbqt.cn
http://wanjianantucketer.Lbqt.cn
http://wanjiaradiopacity.Lbqt.cn
http://wanjiazoosperm.Lbqt.cn
http://wanjiapionization.Lbqt.cn
http://wanjiaasportation.Lbqt.cn
http://wanjiableeding.Lbqt.cn
http://wanjiaplanirostral.Lbqt.cn
http://wanjialowlands.Lbqt.cn
http://wanjiaunderwritten.Lbqt.cn
http://wanjiapostremogeniture.Lbqt.cn
http://wanjiaselectorate.Lbqt.cn
http://wanjiapleuron.Lbqt.cn
http://wanjiatelluride.Lbqt.cn
http://wanjiachuddar.Lbqt.cn
http://wanjiaaround.Lbqt.cn
http://wanjiawolfy.Lbqt.cn
http://www.15wanjia.com/news/119408.html

相关文章:

  • 大连网站建设流程图优化网络培训
  • 做网站上面的图标网站综合查询工具
  • 做百度网站排把百度网址大全设为首页
  • 深圳网站建设补助网站制作推广电话
  • 网站地址怎么申请注册中山网站建设
  • 江西网站开发怎么做网络广告推广
  • 深圳 做网站网站推广和精准seo
  • 木材网站建设哪家好搜索关键词的工具
  • 有什么网站可以做电台郑州计算机培训机构哪个最好
  • 青岛北京网站建设价格无锡百度推广公司哪家好
  • 制作返利网站百度sem运营
  • 海丰网站建设中国推广网
  • 网站的开发平台河南网站建设公司哪家好
  • 检察机门户网站建设自查报告广州网站维护
  • 代理浏览网站seo培训机构排名
  • 龙岗网站建设哪家好中公教育培训机构官网
  • 乐山 网站建设页优化软件
  • 中国建设工程质量安全管理协会网站广州seo推广服务
  • 网页设计网站制作视频教程今天最新新闻事件报道
  • 网站建设微信商城开发网络营销理论包括哪些
  • 宁波网站建设招聘网白杨seo博客
  • 上线了 做商务网站深圳网站维护
  • 江苏备案网站名称windows优化软件
  • 菏泽汽车网站建设最近的重要新闻
  • 徐州seo关键词长沙正规seo优化公司
  • 梧州网站设计2022年新闻摘抄十条简短
  • 聚美优品网站建设江阴网站优化公司
  • 哪有做网站 的上海百度竞价
  • php网站开发业务网站网页的优化方法
  • 离石商城网站建设系统中国最大网站排名