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

网站重新备案需要多长时间朝阳市网站公司

网站重新备案需要多长时间,朝阳市网站公司,推广手机卡返佣平台,怎么制作网站首页的代码前言 JSON 平时大家都会用到#xff0c;都不陌生#xff0c;今天就一起来实现一个 JSON 的可视化工具。 大概长成下面的样子#xff1a; 树展示 相比于现有的一些 JSON 格式化工具#xff0c;我们今天制作的这个小工具会把 JSON 转为树去表示。其中#xff1a; 橙色标…前言 JSON 平时大家都会用到都不陌生今天就一起来实现一个 JSON 的可视化工具。 大概长成下面的样子 树展示 相比于现有的一些 JSON 格式化工具我们今天制作的这个小工具会把 JSON 转为树去表示。其中 橙色标签表示 key蓝色标签表示 value绿色标签表示类型 Number String Object Array Null 左边是一个输入框右边是一个实时反馈的 JSON 可视化区域。下面来看一下大致的实现思路 当输入框的值变化时使用 JSON.parse 解析值如果是一个合法的 JSON 则进行下一步处理如果不是则把异常显示出来递归把 JSON 对象解析成数组树的结构主要会包含以下几个 key key 唯一标识后续用做复制路径title JSON 属性节点 keyvalue JSON 属性节点值isArrayProps 是否是数组的节点children 子节点type 值类型 const handleParse useCallback(debounce((value) {if (!value) {return;}try {const res JSON.parse(value);setJson(res);setError(null);setUpdateKey((key) key 1);setSearchValue();} catch (error) {setJson({});setError(error);}}, 300),[]);useEffect(() {handleParse(value);}, [value]);value 是输入框的输入值当输入值变化时解析 JSON 。获取到新的 JSON 值后开始递归处理组装成树结构 const treeData useMemo(() {const dfs (json, parentKey) {const res [];const keys Object.keys(json);for (const index in keys) {const key keys[index];const value json[key];res[index] {key: parentKey ? [${parentKey}][${key}] : [${key}],title: key,value: value ? value.toString() : value,isArrayProps: Array.isArray(json),children:typeof value object value ! null ? dfs(value, key) : [],type: upperFirst(value null? null: Array.isArray(value)? array: typeof value),};}return res;};try {return dfs(json, );} catch (error) {console.log(err, error);return [];}}, [json]);然后用一个树组件把它渲染出来 TreeshowIconshowLinetitleRender{renderTitle}key{updateKey}treeData{treeData}defaultExpandAll /其中我们希望自定义渲染树的每一个节点所以可以实现一个 titleRender 方法 const renderTitle (node) {return (div onClick{() copy}{!node.isArrayProps ? Tag colororange{node.title}/Tag : }{node.children.length 0 node.value ? (Tag colorblue{node.value}/Tag) : ()}Tag colorgreen{node.type}/Tag/div);}; 这样就完成了基础的功能逻辑及渲染 搜索 这里我们拓展一个根据关键词搜索的功能既可以搜索 key 也可以搜索 value 。 用到一个 Search 组件来搜集 keyword 。 Input.Searchstyle{{ marginBottom: 8 }}placeholderSearchonChange{(e) setSearchValue(e.target.value)} /然后当 keyword 变化的时候去匹配树节点中的属性值如果匹配到了就把对应的值标红。 const renderTitle (node) {const highlight (strTitle) {const index strTitle.indexOf(searchValue);const beforeStr strTitle.substring(0, index);const afterStr strTitle.slice(index searchValue.length);const title index -1 ? (span{beforeStr}span style{{ color: red }}{searchValue}/span{afterStr}/span) : (span{strTitle}/span);return title;};return (div onClick{() copy}{!node.isArrayProps ? (Tag colororange{highlight(node.title)}/Tag) : ()}{node.children.length 0 node.value ? (Tag colorblue{highlight(node.value)}/Tag) : ()}Tag colorgreen{node.type}/Tag/div);};最后实现出来的效果就是这样的 复制路径 我不知道大伙有过这样类似的需求改动一个 json 对象某个 key 对应的值。我之前是有过这样的场景那是在使用 Lottie 做动画的时候。 我需要对描述 Lottie 动画的 json 文件进行一些修改但往往这种文件层级非常深如果不借助一些工具是很难找到对应的值的路径是什么找不到路径就很难修改了。 那么我们有了这个工具之后就很轻松可以通过搜索复制的方式来找到某个值对应的路径。 Clipboard text{node.key} onCopy{() message.success(路径已复制)}div{!node.isArrayProps ? (Tag colororange{highlight(node.title)}/Tag) : ()}{node.children.length 0 node.value ? (Tag colorblue{highlight(node.value)}/Tag) : ()}Tag colorgreen{node.type}/Tag/div /Clipboard用一个复制组件包裹树节点点击的时候把节点的 key 属性复制到粘贴板。 这样就可以轻松获取到节点所对应的 key 了。 最后 以上就是本文的全部内容如果你感兴趣的话点点关注点点赞吧
http://www.w-s-a.com/news/581348/

相关文章:

  • 建设商业网站惠州网站建设推荐乐云seo
  • 如何申请免费域名做网站免费推广神器
  • 自媒体人专用网站安岳网站建设
  • 特乐网站建设做网站推广要多少钱
  • 山东省建设安全生产协会网站义乌跨境电商公司前十名
  • 做网站优化就是发文章吗起飞页自助建站平台的特点
  • 做网站还是做app好慈溪机械加工网
  • 上传下载文件网站开发的php源码腾讯企点
  • 给分管领导网站建设情况汇报怎么写网络运营的岗位职责及任职要求
  • 电线电缆技术支持中山网站建设广告设计培训学校有哪些
  • 如何禁止通过ip访问网站wordpress无法调用主题布局和图片
  • 江西建设工程信息网站重庆网站推广大全
  • 南浔区住房城乡建设局网站网页设计基础学什么
  • 萧山做网站的企业网站建设 西安
  • 江西省城乡建设厅网站百度站长资源平台
  • 本地搭建linux服务器做网站免费查企业信息查询
  • 电商网站建设与运营网上购物哪个网站最好
  • 做app做网站从何学起网站设计需要什么证
  • 设计网站最重要的是要有良好的短网址还原
  • 大连建设银行招聘网站做seo是要先有网站吗
  • 中山做网站的wordpress建站教程百科
  • 湛江专业网站制作做网站需要工具
  • 做音箱木工网站吉林平安建设网站
  • 品牌网站建设咨询灯光设计网站推荐
  • 温州网站运营打开百度一下网页版
  • 网站有情链接怎么做住房公积金个体工商户
  • 内蒙古网站开发网站开发验收资料
  • 温州网站建设首选国鼎网络网络营销方法可分为两类
  • 做张家界旅游网站多少钱企业推广网络营销
  • 代做毕设网站推荐广东手机微信网站制作