引言

js2flowchart 是一个可视化库,可将任何JavaScript代码转换为漂亮的SVG流程图。你可以轻松地利用它学习其他代码、设计你的代码、重构代码、解释代码。这样一个强大的神器,真的值得你拥有,看下面截图就知道了,有没有很强大。

Github

https://github.com/Bogdan-Lyashenko/js-code-to-svg-flowchart

安装使用

  • 安装
yarn add js2flowchart
  • 使用

index.html

 fly测试

index.js

createSVG = () => { document.getElementById("svgImage").innerHTML = null; let code = document.getElementById("jsContent").value; const { createFlowTreeBuilder, createSVGRender } = js2flowchart; const flowTreeBuilder = createFlowTreeBuilder(), svgRender = createSVGRender(); const flowTree = flowTreeBuilder.build(code), shapesTree = svgRender.buildShapesTree(flowTree); const svg = shapesTree.print(); document.getElementById("svgImage").innerHTML = svg;};createSVG();

我们直接在文本域中输入自己的代码,如下,左边会直接生成流程图,这只是一个简单的示例:

js2flowchart的特性以及适用场景(来自官网翻译)

js2flowchart获取您的JS代码并返回SVG流程图,适用于客户端/服务器,支持ES6。

主要特点:

  • 定义抽象级别以仅渲染导入/导出,类/函数名称,函数依赖性以逐步学习/解释代码。
  • 自定义抽象级别支持创建自己的抽象级别
  • 表示生成器,以生成不同抽象级别的SVG列表
  • 定义流树修改器以映射众所周知的API,例如[] .map,[]。forEach,[] .filter到方案上的循环结构等。
  • 销毁修饰符,用于在方案上用一个形状替换代码块
  • 自定义流树修改器支持创建自己的流修改器
  • 流树忽略过滤器完全省略一些代码节点,如日志行
  • 聚焦节点或整个代码逻辑分支突出显示方案的重要部分
  • 模糊节点或整个代码逻辑分支以隐藏不太重要的东西
  • 定义的样式主题支持选择您喜欢的样式
  • 自定义主题支持创建自己的主题,更好地适合您的上下文颜色
  • 自定义颜色和样式支持提供方便的API来更改特定样式而无需样板

用例场景:

  • 通过流程图解释/记录您的代码
  • 通过视觉理解学习其他代码
  • 为有效JS语法简单描述的任何进程创建流程图

以上所有功能可以直接到github上详细了解,用法太多,这里就不在介绍了!

vscode扩展

这么强大的东西,有人肯定说如果在开发的时候实时看到流程图有助于理解代码,官网提供了插件(我在最新版中测试失效了,不知道是否是我使用的有问题还是插件本身的问题),如果感兴趣的可以到扩展商店搜索code-flowchart。如果测试成功,欢迎到评论区分享。以下是我vscode版本和官网的插件使用截图。

如果利用好这个插件,可以开发出Chrome插件,以及其他JavaScript编辑器或者IDEA的插件,由于官方github已经几个月没更新了,所以还不知道未来会不会支持!

总结

js2flowchart是一个比较实用的Javascript插件,可以用来做很多事情,不管是自己写代码。还是阅读别人的代码,都无疑是一大助力,能够帮助我们提升我们的代码能力,更容易的阅读代码,这样学习起来就快了,希望对你有所帮助!如果有什么好的建议,也可以到评论区分享!

代码流程图_助力理解js代码,进阶JavaScript代码能力——js2flowchart相关推荐

  1. jS代码写在html什么位置,3种JavaScript代码书写位置和注意事项

    在网页中编写JavaScript代码时,有3种书写位置,分别是行内式.内嵌式(也称为嵌入式)和外部式(也称为外链式),下面分别进行讲解. 1. 行内式 行内式是指将单行或少量的JavaScript代码 ...

  2. 代码逻辑分析_双十一模块 79.34% 的代码是怎样智能生成的

    作为今年阿里经济体前端委员会的四大技术方向之一,前端智能化方向一被提及,就不免有人好奇:前端结合 AI 能做些什么,怎么做,未来会不会对前端产生很大的冲击等等.本篇文章将围绕这些问题,以「设计稿自动生 ...

  3. linux下运行js挖矿,利用 JavaScript 代码挖矿

    我们都知道,现在的比特币特别的火,但是错过了最好时代的我们,已经玩不起那个动不动就几万的矿机以及还需要翻山越岭迁移到深山发电站的决心.何况,目前比特币已经不再是如同神话一般的不断开创历史新高,该来的矿 ...

  4. svn如何隐藏代码路径_程序员课堂—如何通过改善代码风格来消灭隐藏bug

    写在前面:一名有三年Android开发经验的女程序员(欢迎大家关注我 ~期待和大家一起交流和学习Android的相关知识) 正如食物腐烂之前,可能会发出异味.当代码存在隐藏问题时,代码也会表现出一些异 ...

  5. vscode 调试参数_如何通过vscode运行调试javascript代码

    初次正式要写 javascript 相关的代码,想要用 vscode 直接编译 js 代码,但是发现没有那么简单,需要配置好 launch.json 文件,现已经在vscode上编译过去并且可以调试 ...

  6. java 静态代码块_关于Java你不知道的那些事之代码块

    前言 普通代码块:在方法或语句中出现的{},就被称为代码块 静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执 ...

  7. php 中js跳转页面跳转页面,js跳转代码_PHP页面跳转 Js页面跳转代码

    摘要 腾兴网为您分享:PHP页面跳转 Js页面跳转代码,自动刷宝,中信金通,携程抢票,未来屋等软件知识,以及沃金汇,沃行讯通,securecrt.exe,我的世界变形金刚mod,一票通,农场小分队,手 ...

  8. unity现代人物含代码动画_深入了解 Unity DOTS Sample (一): 代码框架 amp; 工具 amp; 开发模式

    << 返回目录 代码框架 & 工具 相比于 FPSSample, DOTS Sample 进行了更加 package 化的更动, 无关乎游戏本体的代码放在了 Unity.Sampl ...

  9. react中如何注释代码_学习在您的React / JavaScript代码中发现红旗?

    react中如何注释代码 by Donavon West 由Donavon West 学习在您的React / JavaScript代码中发现红旗? (Learn to spot red flags ...

最新文章

  1. JMeter初探-安装与使用
  2. Replace Pioneer
  3. 从上千篇论文脱颖而出,支付宝论文凭什么获得WWW2020评委认可?
  4. 音视频技术开发周刊 68期
  5. 线性表、顺序表以及ArrayList、Iterable、Collection、List中重要的方法
  6. linux优先级队列,Python3 线程优先级队列( Queue)
  7. 生信宝典联合科学出版社在双 11推出生物信息专题书单 5 折优惠!学起来!
  8. 数据库基本常用类型解析
  9. 遇到的一个很有趣的陷阱
  10. 【Web Design The Missing Link】Handing Error
  11. ExoPlayer播放器 开发者指南(官方权威指南译文)
  12. 嗨,程序员,你知道高级工程师用的搜索引擎吗?
  13. PXE实现系统批量自动安装
  14. c语言中整形变量,C语言基本数据类型:整型(int)用法详解
  15. Microsoft Office 2016出现Excel文件打不开解决方法
  16. 逻辑代数:逻辑运算与定理,代数化简
  17. 西行漫记(16):C#长得太丑了
  18. windows7的快速启动栏
  19. telnet 正在连接127.0.0.1:8888...无法打开到主机的连接。 在端口 23: 连接失败
  20. R语言中seq函数的用法

热门文章

  1. python储存数据分行_基于python实现对文件进行切分行
  2. 爬虫项目——m3u8后缀的电影
  3. 大数据可视化需要遵循哪几个核心原则
  4. 什么是管理大数据技术
  5. 服务器主动发送fin信号,tcp 服务器向客户端发送FIN
  6. mysql 分表后如何扩展_MySQL横向扩展-分库分表解决方案总结
  7. linux常用ipc技术,LINUX系统编程之IPC
  8. .net安装_如何安装GWAS分析软件R包:GAPIT
  9. 生存分析——泊松回归(LightGBM)实现生存分析(四)
  10. 数据结构之算法与线性表