前端插件
富文本编辑器
Markdown 编辑器
通用:
react:
vue:
代码编辑器
- ace 一个用 JavaScript 编写的独立代码编辑器
- vue2-ace-editor 基于 ace 的 vue 插件
- monaco-editor 微软开源,为 vscode 编辑器提供支持
- codemirror
时间日期
- Day.js
- date-fns
- Moment.js
- FullCalendar 日历插件,支持 React 和 Vue
拖拽
- Vue.Draggable
- dndkit
- react-draggable
- 原生 js 可拖拽改变大小的弹窗
- layer-vue 基于 Vue2 框架的可移动可调整大小的非模态弹出层
流程图
- React Flow
- vue-flow 只支持 vue3
- LogicFlow 滴滴出品
- Antv X6
业务流
- bpmn-js
- bpmn-js 文档、github 仓库,在后 面两个库之上,bpmn-js 定义了 BPMN 细节,例如外观、建模规则和工具(即调色板)
- bpmn-moddle,读写 BPMN 2.0 模式兼容的 XML 文档,并访问图表上绘制的形状和连接背后的 BPMN 相关信息
- diagram-js,用来绘制形状和连接,提供与图形元素交互的方法以及其他工具
- 参考 1
- 参考 2
- 参考 3
甘特图
组织结构图
- vue-okr-tree、参考 基于 Vue2 的组织架构树组件
- vue-org-tree、参考 1、参考 2
思维导图
- markmap 将 markdown 格式转为思维导图
- Mermaid:用于创建交互式的流程图,时序图,甘特图等
- jsMind:用于创建思维导图
- D3.js:用于创建交互式的数据可视化,包括思维导图
- GoJS:用于创建交互式的流程图,网络图,思维导图等
在线文档
Canvas 库
- Faloric js:功能强大的 Canvas 库,支持对象的拖放、缩放、旋转和编辑
- Konvajs:2D 渲染引擎,支持动画,可以很容易地在 Canvas 中创建交互式图形
- pixijs:轻量级的 2D 渲染引擎,非常适合游戏和动画
- Three.js:用于 WebGL 的 3D 图形库,可以轻松地在 Canvas 中呈现 3D 场景
- Paperjs:强大的向量圈形库,可以用于创建复杂的矢量图形和动画
- P5js:基于 Processing 的 JavaScript 库,可以用于创建交互式图形和动画
- CreateJS:功能强大的 JavaSeript 库,提供了多种工具,用于创建 HTML5 内容,包括 Canvas
- GreenSock:用于动画的 JavaScript 库,支持 Canvas 和 SVG
- D3js:强大的数据可视化库,可以用于创建复杂的图表和可视化,包括 Canvas
3D 图形库
- Threejs: 用于 WebGL 的 3D 图形库,非常适合创建复杂的 3D 场景和动画
- Babylon.js 功能强大的 3D 图形库,提供了一组强大的工具,用于创建复杂的 3D 场景
- A-Frame:用于 webVR 的库,可以轻松地创建交互式 3D 场景
- PlayCanvas:用于在线游戏和 3D 内容的引擎,提供了一组强大的工具,用于创建高质量的 3D 场景
地图库
- Leaflet:这是一个开源的 JavaScript 地图库,非常适合创建简单的地图和交互式地图应用程序
- OpenLayers:这是一个功能强大的开源 JavaScript 地图库,提供了丰富的地图功能,包括地图瓦片,图层控制,矢量图形等
- Mapbox GL JS:这是一个开源的 JavaScript 库,用于创建交互式地图,支持大量的地图图层和自定义样式
- Google Maps JavaScript API:这是 Google 提供的地图 API,可以用于在网站和移动应用程 序中嵌入 Google 地图
电子表格库
- Handsontable:这是一个功能强大的 JavaScript 电子表格库,提供了丰富的功能,包括排序,筛选,复制/粘贴等
- SheetJS:这是一个开源的电子表格库,支持读写多种格式的电子表格文件,包括 Excel,CSV 等
- jExcel:这是一个开源的 JavaScript 电子表格库,提供了丰富的功能,包括编辑,排序,过滤等
- Tabulator:这是一个功能强大的 JavaScript 电子表格库,提供了丰富的功能,包括排序,筛选,编辑等
物理引擎库
- Box2D:2D 物理引擎,支持各种物理模拟,如碰撞,重力,弹力等
- Chipmunk:2D 物理引擎,提供了丰富的功能,包括碰撞检测,多种物理运动等
- Bullet:3D 物理引擎,提供了丰富的功能,包括碰撞检测,刚体运动,软体模拟等
- Havok:一个商业的 3D 物理引擎,提供了丰富的功能,包括碰撞检测,刚体运动,软体模拟等
ERP/CMS
OA 系统
O2OA
虚拟列表
轮播图
PDF
加解密
cookie
处理 js 精度
右键菜单
- Vue Contextmenu vue2 版本
- vue3-context-menu vue3 版本
数字滚动效果
图片预览
- viewerjs 支持放大、缩小、旋转
- VueImgsPreview
图片裁剪
图片懒加载
剪贴板
五彩纸屑
二维码生成器
留言板
中国省市区乡镇村地质数据
- Administrative-divisions-of-China
- provinces-china 2017 年的数据,适合 vue+element-ui
webSocket 通信
MQTT
- MQTT.js Node.js 和浏览器的 MQTT 客户端
页面进度条
页面滚动动画
懒加载
JSON 数据美化
vuex 状态持久化
捕获键盘的输入
范围滑块
数据可视化
-
3d-force-graph 3D 力导图,基于 three.js
-
3d-force-graph 自己改的星球效果
生成随机数据
根据条件 json 生成 随机 json
let axios = require('axios');
let randomjson = require('randomjson');
let dd = Math.random() * 10;
let modelJson = {
'data<@{5000}>': [
{
RDJ_GRBH: '<@index>' + dd,
BIP_XM: '姓名',
TJSJ: '20200115000555',
user: '2333'
}
]
};
let myjson = randomjson(modelJson);
axios
.post('http://192.168.130.63:5001/lgMulityInsert/ry', myjson)
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
时间轴
https://github.com/Ivanzgh/timeline
动画库
Tween.js
https://github.com/tweenjs/tween.js
let box = document.createElement('div');
box.style.setProperty('background-color', '#008800');
box.style.setProperty('width', '100px');
box.style.setProperty('height', '100px');
document.body.appendChild(box);
function animate() {
requestAnimationFrame(animate);
TWEEN.update();
}
animate();
let coords = { x: 200, y: 0 };
let tween = new TWEEN.Tween(coords)
.to({ y: 200 }, 3000)
.easing(TWEEN.Easing.Sinusoidal.InOut)
.onUpdate(() => {
box.style.setProperty('transform', 'translate(' + coords.x + 'px, ' + coords.y + 'px)');
})
.start();
let tweenBcak = new TWEEN.Tween(coords)
.to({ y: 0 }, 3000)
.easing(TWEEN.Easing.Sinusoidal.InOut)
.onUpdate(() => {
box.style.setProperty('transform', 'translate(' + coords.x + 'px, ' + coords.y + 'px)');
});
tween.chain(tweenBcak);
tweenBcak.chain(tween);
配合 three.js 使用,比如让一个球体沿 z 轴上下运动
let coords = { x: 84771.68253191965, y: 31757.48999119179, z: 8.530729184960364 };
let tween = new TWEEN.Tween(coords)
.to({ z: coords.z + 1 }, 3000)
.easing(TWEEN.Easing.Sinusoidal.InOut)
.onUpdate(() => sphereMesh.translateZ(0.01))
.start();
let tweenBack = new TWEEN.Tween(coords)
.to({ z: coords.z }, 3000)
.easing(TWEEN.Easing.Sinusoidal.InOut)
.onUpdate(() => sphereMesh.translateZ(-0.01));
tween.chain(tweenBack);
tweenBack.chain(tween);
function animation() {
requestAnimationFrame(animation);
TWEEN.update();
threelayer.renderScene();
}
animation();
lottiefiles
Lottie 是一种基于 JSON 的动画文件格式,可以创建复杂的 UI SVG 动画
在 react 项目中使用 lottiefiles
import Lottie from 'lottie-react';
import animationData from './assets/dlf10_pPYkESohrg.json';
export default function Children() {
return <Lottie animationData={animationData} />;
}