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

6个常用项目管理软件专业全网优化

6个常用项目管理软件,专业全网优化,软件开发app制作,网站建设属于IT吗文章目录 案例分析技巧通信展示效果实现代码技巧点技巧点 Refer to 案例分析 https://github.com/dL-hx/manager-fe/commit/85faf3b1ae9a925513583feb02b9a1c87fb462f7 从接口获取城市数据,渲染出一个树形菜单 要求: 可以展开和收起 技巧 学会递归渲染出一个树形菜单, 并点击后… 文章目录 案例分析技巧通信展示效果实现代码技巧点技巧点 Refer to 案例分析 https://github.com/dL-hx/manager-fe/commit/85faf3b1ae9a925513583feb02b9a1c87fb462f7 从接口获取城市数据,渲染出一个树形菜单 要求: 可以展开和收起 技巧 学会递归渲染出一个树形菜单, 并点击后可以展开和收起通过对数据上添加控制字段(show)避免在子组件添加各种同步的useState,等字段.保证单向数据流向, 来简化问题. 通信 父子通信 展示效果 实现代码 src\views\TreeMenu\index.tsx import TreeMenu from ./TreeMenu; export default TreeMenu技巧点 调用pulic/citydata.json数据通过原数据添加show字段,递归处理.为每一个item添加show字段当再次点击item选项时候,根据原数据上的show字段进行控制, 递归修改源数据对应的id(判断条件找到对应item, if (item.value id) ). 将其取反后setData 对于接口源数据没有返回的ui控制字段,前端需要自己添加 因为是react, 对引用数据修改要注意需要生成新数据后在setData src\views\TreeMenu\TreeMenu.tsx import { Button } from antd; import { useState, useEffect } from react; import Tree from ./Tree; export default function TreeMenu() {const [data, setData] useState([])useEffect(() {fetch(/citydata.json).then(res res.json()).then(res {setData(recursionAddProps(res))})}, [])// 当数据请求过来后,我们要递归式给每一个数据加一个属性,用来控制是否展开功能const recursionAddProps (data) {// 在item 上加一个属性// show: true 则展开, false 折叠return data.map((item) {item.show false// 递归式自己调用自己if (item.children) {recursionAddProps(item.children)}return item})}/*** * param data 源数据* param id 点击的id选项* returns */const recursionEditProps (data, id) {// 在item 上加一个属性// show: true 则展开, false 折叠return data.map((item) {if (item.value id) { // 判断条件: 找到对应id在取反item.show !item.show // 取反} // 递归式自己调用自己if (item.children) {recursionEditProps(item.children, id)}return item})}// 获取到子组件传递过来的数据const setShow (child) {// item.show true// const newData data.map((item) {// if (item[value] child.value) {// // ts-ignore// item[show] !child.show// }// return item// })// setData(newData)// 需要递归处理这个show展开 // console.log(recursionEditProps(data, child.value));// 通过item-id,把数据中的show 改为truesetData(recursionEditProps(data, child.value))}return divTree data{data} setShow{setShow}/Tree/div }技巧点 递归调用自身通过为父组件原数据添加show字段, 子组件修改父组件数据结构的show字段来控制,子组件是否展示 因为是单向数据流, 数据控制视图, 通过递归完成 src\views\TreeMenu\Tree.tsx import Tree from ./Treeexport default ({ data, showtrue, setShow }: any) {console.log(data);return ul style{{display: show? block: none}}{Array.isArray(data) data.length data.map(item {return li key{item.value} onClick{(event){// 清除冒泡event.stopPropagation()setShow(item)}}{item.value}{/* 递归组件 */}{item.children item.children.length Tree data{item.children} show{item.show} setShow{setShow}/}/li})}/ul }/public/citydata.json [{lable: 北京市,value: 北京市,children: [{lable: 东城区,value: 东城区,children: [{lable: 东城区-0,value: 东城区-0},{lable: 东城区-1,value: 东城区-1},{lable: 东城区-2,value: 东城区-2}]},{lable: 西城区-1,value: 西城区,children: [{lable: 西城区-0,value: 西城区-0},{lable: 西城区-1,value: 西城区-1},{lable: 西城区-2,value: 西城区-2}]},{lable: 海淀区-2,value: 海淀区-2}]},{lable: 西安市,value: 西安市,children: [{lable: 长安区-0,value: 长安区-0},{lable: 桥西区-1,value: 桥西区-1},{lable: 新华区-2,value: 新华区-2}]},{lable: 天津市,value: 天津市} ]Refer to https://www.bilibili.com/video/BV19W4y1p7eu
http://www.pierceye.com/news/161820/

相关文章:

  • 免费的舆情网站不用下载直接打开江西城乡建设网站
  • 那些网站是做金融行业网站主目录权限配置
  • 本地网站做不大wordpress 安全设置
  • 宁波教育平台网站建设广告行业怎么找客户
  • php企业网站开发实验总结商城网站建设模板
  • 单词优化和整站优化建设银行的网站特点
  • 厦门淘宝网站设计公司wordpress大前端dux5.2
  • 淮南网站seo网络信息发布平台
  • 网站自己做流量如何查询网站被百度收录情况
  • 网络营销网站源码做网站中怎么设置单张图片
  • 怎么做淘宝客网站网站定位代码
  • 自己给网站做logo卓成建设集团有限公司网站
  • 西宁建设网站软件徐州集团网站建设公司
  • 做网站卖设备找哪家好百度智能云windows系统服务器建站
  • 长沙企业做网站专门查企业信息的网站
  • 比较权威的房产网站百度网盘官网登陆入口
  • 金融商城快捷申请网站模板下载安全电子商务网站设计
  • 公司网站建设重要性天津建设交培训中心网站
  • 成都网站制作东三环论文一区二区三区是什么意思
  • 织梦图片瀑布流网站模板成都大型网站维护公司
  • 企业信息网站wordpress怎么调用m3u8视频
  • 前端怎么接私活做网站中文h5编程工具
  • wordpress模板 站长营销型网站开发
  • 广西南宁市住房和城乡建设局网站网络平台怎么建
  • 徐州提供网站建设报价表手机微网站怎么做
  • 建设汽车行业网站网站建设规划书百度文库
  • 金坛区建设局网站为什么我的网站百度搜不到
  • 高端t恤定制网站google搜索网址
  • 海南省住房和城乡建设厅网站重庆建设工程安全网
  • 免费帮忙做网站如何给网站增加外链