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

网站开发项目经验描述怎么写青岛无间设计公司网站

网站开发项目经验描述怎么写,青岛无间设计公司网站,佛山建站,泸溪县建设局网站在之前的文章 探讨#xff1a;围绕 props 阐述 React 通信 中总结了关于“父子”组件传值#xff0c;但是当需要在组件树中深层传递参数以及需要在组件间复用相同的参数时#xff0c;传递 props 就会变得很麻烦。 实际案例#xff1a; 下述展示有两种状态#xff1a;① 详…在之前的文章 探讨围绕 props 阐述 React 通信 中总结了关于“父子”组件传值但是当需要在组件树中深层传递参数以及需要在组件间复用相同的参数时传递 props 就会变得很麻烦。 实际案例 下述展示有两种状态① 详情态② 编辑态tag形式 组件设计通过 isDetailed 来决定是“详情”还是“编辑”。 开发过程拆分了四层根组件设置了 isDetailed 来确定最终确定 ViolationGroup 中展示。 {data.map((item) isDetailed ? (div{item.disposeReasonName}/div) : (Tag bordered{false}{item.disposeReasonName}/Tag),)}#mermaid-svg-XexWk0Vn8Po8kmgJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .error-icon{fill:#552222;}#mermaid-svg-XexWk0Vn8Po8kmgJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XexWk0Vn8Po8kmgJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .marker.cross{stroke:#333333;}#mermaid-svg-XexWk0Vn8Po8kmgJ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-XexWk0Vn8Po8kmgJ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .cluster-label text{fill:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .cluster-label span{color:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .label text,#mermaid-svg-XexWk0Vn8Po8kmgJ span{fill:#333;color:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .node rect,#mermaid-svg-XexWk0Vn8Po8kmgJ .node circle,#mermaid-svg-XexWk0Vn8Po8kmgJ .node ellipse,#mermaid-svg-XexWk0Vn8Po8kmgJ .node polygon,#mermaid-svg-XexWk0Vn8Po8kmgJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-XexWk0Vn8Po8kmgJ .node .label{text-align:center;}#mermaid-svg-XexWk0Vn8Po8kmgJ .node.clickable{cursor:pointer;}#mermaid-svg-XexWk0Vn8Po8kmgJ .arrowheadPath{fill:#333333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-XexWk0Vn8Po8kmgJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-XexWk0Vn8Po8kmgJ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-XexWk0Vn8Po8kmgJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-XexWk0Vn8Po8kmgJ .cluster text{fill:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ .cluster span{color:#333;}#mermaid-svg-XexWk0Vn8Po8kmgJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-XexWk0Vn8Po8kmgJ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 根组件 DetailViolationGroupList Item ViolationGroup props 传递逐层传递 根组件设置 isDetailed然后逐层传递。 ☝️缺点需要找到最近的父节点“状态提升” 到太高的层级会导致“逐层传递props”的情况。 ✌️优势这样做可以让哪些组件用了哪些数据变得十分清晰 context 传递深层传递 Context 使组件向其下方的整个树提供信息会穿过中间的任何组件。子组件可以通过某种方式“访问”到组件树中某处在其上层的数据。 无需逐层透传直接广播形式需要的组件直接获取。 创建 一个 context。可以将其命名为 IsDetailedContext) export const IsDetailedContext createContext(false);在需要数据的组件内 使用 刚刚创建的 context。ViolationGroup 将会使用 IsDetailedContext const isDetailed useContext(IsDetailedContext);在指定数据的组件中 提供 这个 context。 根组件 将会提供 IsDetailedContext IsDetailedContext.Provider value{true}DetailViolationGroupList violationGroupList{data?.detail?.violationGroupList}/DetailViolationGroupList /IsDetailedContext.Provider☝️缺点对数据的抽离导致理解成本略高。 ✌️优势许多组件需要相同的信息避免通过许多中间组件向下传递 props冗长 ⚓ Context 的工作方式类似于 CSS 属性继承。在 React 中覆盖来自上层的某些 context 的唯一方法是将子组件包裹到一个提供不同值的 context provider 中。 包装成组件形式 定义组件形式 /* context.js */ import { createContext, useContext } from react;export const IsDetailedContext createContext(false);export const IsDetailedProvider ({ children, isDetailed }) {const originalIsDetailed useContext(IsDetailedContext); // 原始默认值 falsereturn (IsDetailedContext.Provider value{isDetailed ?? originalIsDetailed}{children}/IsDetailedContext.Provider); };使用方 IsDetailedProvider isDetailed{true}DetailViolationGroupListviolationGroupList{data?.detail?.violationGroupList}/DetailViolationGroupList /IsDetailedProvider知识点空值合并运算符 空值合并运算符??是一个逻辑运算符当左侧的操作数为 null 或者 undefined 时返回其右侧操作数否则返回左侧操作数。与逻辑或运算符||不同逻辑或运算符会在左侧操作数为假值时返回右侧操作数。也就是说如果使用 || 来为某些变量设置默认值可能会遇到意料之外的行为。 ?? 1 // || 1 // 1 0 ?? 1 // 0 0 || 1 // 1与 state 结合 Context 不局限于静态值。如果在下一次渲染时传递不同的值React 将会更新读取它的所有下层组件可以和 state 结合使用。 children 传递jsx 抽象组件并将 JSX 作为 children 传递。 #mermaid-svg-nnhMDHOWM1SdDjxC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC .error-icon{fill:#552222;}#mermaid-svg-nnhMDHOWM1SdDjxC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nnhMDHOWM1SdDjxC .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-nnhMDHOWM1SdDjxC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nnhMDHOWM1SdDjxC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nnhMDHOWM1SdDjxC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nnhMDHOWM1SdDjxC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nnhMDHOWM1SdDjxC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nnhMDHOWM1SdDjxC .marker.cross{stroke:#333333;}#mermaid-svg-nnhMDHOWM1SdDjxC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nnhMDHOWM1SdDjxC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC .cluster-label text{fill:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC .cluster-label span{color:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC .label text,#mermaid-svg-nnhMDHOWM1SdDjxC span{fill:#333;color:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC .node rect,#mermaid-svg-nnhMDHOWM1SdDjxC .node circle,#mermaid-svg-nnhMDHOWM1SdDjxC .node ellipse,#mermaid-svg-nnhMDHOWM1SdDjxC .node polygon,#mermaid-svg-nnhMDHOWM1SdDjxC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nnhMDHOWM1SdDjxC .node .label{text-align:center;}#mermaid-svg-nnhMDHOWM1SdDjxC .node.clickable{cursor:pointer;}#mermaid-svg-nnhMDHOWM1SdDjxC .arrowheadPath{fill:#333333;}#mermaid-svg-nnhMDHOWM1SdDjxC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nnhMDHOWM1SdDjxC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nnhMDHOWM1SdDjxC .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-nnhMDHOWM1SdDjxC .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-nnhMDHOWM1SdDjxC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nnhMDHOWM1SdDjxC .cluster text{fill:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC .cluster span{color:#333;}#mermaid-svg-nnhMDHOWM1SdDjxC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nnhMDHOWM1SdDjxC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} children 根组件 Item ViolationGroup 上述示例让 Item 把 children 当做一个参数渲染 ItemViolationGroup isDetailed{true} //Item然后去掉DetailViolationGroupList 层。这样就减少了定义数据的组件和使用数据的组件之间的层级。 直接在父组件中引用使用
http://www.w-s-a.com/news/136388/

相关文章:

  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站
  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程
  • ui设计网站设计与网页制作视频教程wordpress插件漏洞利用
  • 网站建设公司排名前十做网站的最终目的
  • 选择网站开发公司的标准中国网站建设市场规模
  • 衣服网站建设策划书广州住房和城乡建设部网站
  • 微商城科技淄博网站建设优化seo
  • 杭州 网站设计制作东圃手机网站开发
  • 网站文章页内链结构不好可以改吗微信平台如何开发
  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏
  • 网站制作的重要流程图大连网站优化快速排名
  • 河南省住房建设厅官方网站注册公司邮箱需要什么
  • 美橙网站注册华为手机网站建设策划方案论文