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

做旅行网站的依据及意义如何制作自己想要的图片

做旅行网站的依据及意义,如何制作自己想要的图片,旅游景点网页,wordpress文章模板如何修改简介 关于provide与inject下面是vue官网上的一些介绍 通常情况下#xff0c;当我们需要从父组件向子组件传递数据时#xff0c;会使用props。想象一下这样的结构#xff1a;有一些多层级嵌套的组件#xff0c;形成了一颗巨大的组件树#xff0c;而某个深层的子组件需要一个…简介 关于provide与inject下面是vue官网上的一些介绍 通常情况下当我们需要从父组件向子组件传递数据时会使用props。想象一下这样的结构有一些多层级嵌套的组件形成了一颗巨大的组件树而某个深层的子组件需要一个较远的祖先组件中的部分数据。在这种情况下如果仅使用 props 则必须将其沿着组件链逐级传递下去这会非常麻烦 注意虽然这里的 Footer 组件可能根本不关心这些 props但为了使 DeepChild 能访问到它们仍然需要定义并向下传递。如果组件链路非常长可能会影响到更多这条路上的组件。这一问题被称为“prop 逐级透传”显然是我们希望尽量避免的情况。 provide 和 inject 可以帮助我们解决这一问题 [1]。一个父组件相对于其所有的后代组件会作为依赖提供者。任何后代的组件树无论层级有多深都可以注入由父组件提供给整条链路的依赖。 一个小栗子  创建一个跟组件跟组件提供了三个数据源let message、const mesRef、const mesReactive后两者为ref、reactive类型的值代码如下 templatediv classboxdiv classshow第一层组件显示的message的值{{ message }}/divdiv classshow第一层组件显示的mesRef的值{{ mesRef }}/divdiv classshow第一层组件显示的mesReactive的值{{ mesReactive }}/divdivdiv第一层组件引入第二层组件/divmidassem/midassem/divdiv classchangeMsgdiv classchange clickchangeValue(one)change message value/divdiv classchange clickchangeValue(two)change mesRef value/divdiv classchange clickchangeValue(three)change mesReactive value/div/div/div /template script setup import { ref, reactive } from vue; import { provide } from vue; import midassem from ./assembly/midassem.vue;let message 来自第一层父组件的消息; const mesRef ref(来自第一层父组件的响应式消息); const mesReactive reactive({name: alisa, time: 2024.3.15});let changeNum 0;// 使用provide在父组件中为后代组件提供数据 // 提供一个常量 provide(message, message);// 提供一个响应式常量 provide(refmsg, mesRef);// 提供一个reactive响应式对象 provide(reactivemsg, mesReactive);/* 事件回调 */ const changeValue (tag) {changeNum;if (tag one) {message message - changeNum;}else if(tag two) {mesRef.value mesRef.value - changeNum;}else if(tag three){mesReactive.value mesReactive.value - changeNum;} } /script style scoped langless .box {display: flex;flex-direction: column;.show {background-color: rgb(109, 144, 166);margin: 20px;padding: 20px;}.changeMsg {display: flex;flex-direction: row;margin: 20px;padding: 20px;.change {background-color: rgb(215, 146, 102);font-size: 16px;padding: 20px;margin-right: 20px;width: 380px;text-align: center;}} } /style 创建一个跟组件的子组件midassem用于展示它的一个子组件lastassem代码如下 templatediv classboxdiv第二层组件加载最后一层组件如下/divdivlastassem/lastassem/div/div /template script setup import lastassem from ./lastassem.vue /script style scoped .box {display: flex;flex-direction: column; } /style 创建子组件lastassem用于接收根组件provide的值代码如下 templatediv classboxdiv最深层组件获取的数据/divdiv classshow第一级组件的常量值message {{ message }}/divdiv classshow第一层组件的ref响应式值 refMsg {{ refMsg }}/divdiv classshow第一层组件的reactive响应式对象reactiveMsg {{ reactiveMsg }}/div/div /template script setup import { inject } from vue;// 接收第一层组件的常量值 const message inject(message);// 接收第一层组件的ref响应式值 const refMsg inject(refmsg);// 接收第一层组件的reactive响应式值 const reactiveMsg inject(reactivemsg);/script style scoped langless .box {display: flex;flex-direction: column;.show {background-color: aquamarine;margin: 20px;padding: 20px;} }/style 看一下运行后的效果图屏幕比较小把浏览器展示的图截成了两张 点击下方的三个button会分别改变根组件提供的那三个值。 青绿色的部分为子组件lastassem从根组件获取的值值得注意的是根组件中的ref与reactive类型的值发生改变时子组件lastassem展示的在页面上的值也响应式的发生了改变 一些优化的技巧 但如果你正在构建大型的应用包含非常多的依赖提供或者你正在编写提供给其他开发者使用的组件库建议最好使用 Symbol 来作为注入名以避免潜在的冲突。 我们通常推荐在一个单独的文件中导出这些注入名 Symbol下面把上面的代码优化了一下新建了一个symbols.js文件专门用于存储symbol创建的key值 /*如果你正在构建大型的应用包含非常多的依赖提供或者你正在编写提供给其他开发者使用的组件库 建议最好使用 Symbol 来作为注入名以避免潜在的冲突。 */ export const myAssemKey Symbol(); 然后把根组件和lastassem组件的代码优化下如下 import { myAssemKey } from ./utils/symbols.js;const mesReactive reactive({name: alisa, time: 2024.3.15});// 通过Symbol作为key提供数据源 provide(myAssemKey, symbolMessage); import { myAssemKey } from ../utils/symbols.js;// 接收第一层组件使用symbol作为key值提供的数据源 const symbolMessage inject(myAssemKey); 下图为展示的新的图
http://www.pierceye.com/news/664026/

相关文章:

  • 电子商务网站怎么做网站建设企业建站哪家好?来这里看看
  • 网站备案电话号码购物商城网站建设方案
  • 手机商城系统徐州seo计费管理
  • 西安网站公司哪家好信息推广的方式有哪些
  • 网站开发注意的事项商丘网站制作软件
  • 51zwd一起做网站广州广东省网站备案查询
  • 如何生成一个网站自己弄公司网站
  • 企业信用信息查询网官网孝感网站seo
  • 中淼建设工程有限公司网站分类用wordpress
  • 腾讯建设网站首页做销售网站
  • 推广引流网站聚名网注册
  • 原来做网站后来跑国外了多伦多网站建设多少钱
  • 手机建站平台做母婴网站设计思路
  • 免费个人手机网站九八智能建站
  • 中山网站备案如何做购物网站
  • 常见的简单的网站制作建设网站的好公司
  • 邯郸网站制作建设wordpress+怎么迁移
  • 设计创意广告上海企业网站优化
  • 自己做网站需要购买服务器吗WordPress文章相册修改
  • 校园招聘哪个网站做的好学做川菜网站
  • 大足网站建设公司医院网站建设熊掌号
  • 做网站编辑是不是也要做推广做蛋白go分析网站
  • 免费品牌网站制作云南电商网站建设
  • 宿迁莱布拉网站建设常州做网站建设的公司
  • 广东网站建站系统哪家好常州网站搭建公司
  • 400网站建设推广软件工程师工资
  • 专门做正品的网站手机版深圳市门户网站建设怎么样
  • 做外贸比较好的网站有哪些北京短视频代运营
  • 建站公司学习筑梦网站建设
  • 手工艺品网站建设侧胡顺个人简历表格可填写