Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 网站投稿
  • 赞助一下
  • 关于我们
搜索

在线工具_工作生活好帮手

打造各种简单、易用、便捷的在线工具,网友无需注册和下载安装即可使用

点击查看

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
提交资源 / 链接反馈

BaklavaJS

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:http://baklava.tech
GitHub:https://github.com/newcat/baklavajs
网站描述:基于 Vue3 + TypeScript 的浏览器端图节点编辑器
访问官网 GitHub

BaklavaJS 是 基于 vue3 + TypeScript 的浏览器端图节点编辑器,核心很小,所有能力(渲染、引擎、类型校验、主题)都以 插件 方式按需安装。


BaklavaJS 技术分析

分层
技术选型
亮点
核心模型
ES6 Class + Proxy
响应式、可序列化,脱离 UI 也能跑
渲染层
Vue3 + Render Function
节点模板就是 Vue 单文件,想怎么写就怎么写
计算引擎
拓扑排序 + Hooks
同步/异步都支持,可插拔自定义引擎
类型系统
编译期 + 运行期双重校验
接口强类型,自动转换,拒绝“连错线”
插件机制
Tapable 风格钩子
官方所有功能都是插件,用户也能写

BaklavaJS 特点

  • “节点即组件”一个 *:.vue 文件 = 一个节点 UI,Props 自动注入,再也不用 drawGroup/addShape。

  • “连线带类型”:红色传 number,绿色传 string,非法连接直接飘红,还能注册 converter 自动帮你 parseInt。

  • “自动算拓扑”:置 DependencyEngine,一键 engine.calculate(),节点按依赖顺序执行,异步也支持 async/await。

  • “主题就是 css 变量”:官方提供暗黑/浅色两套,换肤只需 useTheme('syrup-dark'),设计师也能轻松定制。

  • “真正的 TypeScript”:源码 100% TS,公共 api 全部导出类型;你在节点里写 this.getInterface<string>('title') 就能获得完整提示。


如何快速上手

1. 安装

# 一次性把所有官方插件拉下来
npm i baklavajs
# 或者按需
npm i @baklavajs/core @baklavajs/engine @baklavajs/renderer-vue

2. 定义节点

// MultiplyNode.ts
import { defineNode } from'@baklavajs/core';

exportdefault defineNode({
type: 'MultiplyNode',
  title: '乘法',
  inputs: [{ name: 'a', interface: 'number' },
           { name: 'b', interface: 'number' }],
  outputs: [{ name: 'result', interface: 'number' }],
  calculate({ a, b }) {
    return { result: a * b };
  },
});

3. 在 Vue 里挂载

<template>
  <BaklavaEditor :view-model="viewModel" />
</template>

<script setup>
import { Editor } from '@baklavajs/core';
import { DependencyEngine, useInterfaceTypes } from '@baklavajs/engine';
import { viewModel } from '@baklavajs/renderer-vue';
import MultiplyNode from './MultiplyNode';

const editor = new Editor();
editor.registerNodeType(MultiplyNode);
editor.use(useInterfaceTypes()); // 启用类型校验
editor.use(new DependencyEngine(editor)); // 挂载引擎
viewModel.editor = editor;
</script>

4. 运行

npm run dev

打开浏览器,拖两个数字输入节点 → 连到乘法 → 点击“运行”,结果实时更新!


应用场景

  • 低代码平台
    把“数据清洗 → 转换 → 输出”做成节点,业务人员拖拽即可生成数据管道。
  • 游戏逻辑蓝图
    条件分支、事件触发、动画参数全部节点化,策划就能拼玩法。
  • 教学演示
    排序/寻址算法可视化,节点=步骤,连线=数据流,学生秒懂。
  • IoT 规则引擎
    传感器阈值、报警动作、云端接口拖一拖,规则立刻生效。
  • 图像处理工作流
    滤镜、遮罩、调色节点化,前端实时 WebGL 预览,无需后端。


与同类库横向对比

库
技术栈
节点自定义
类型安全
执行引擎
适用场景
BaklavaJS
Vue3 + TS
Vue SFC
✅ 编译期+运行期
内置拓扑引擎
Vue 项目、强类型、重业务逻辑
AntV X6
react/Canvas
手动渲染
❌ 需自己写
无,需二次开发
流程图、审批图、重交互
React Flow
React
组件化
❌ 需额外封装
无
React 生态、快速搭建
LiteGraph.js
原生 Canvas
简单 JSON
❌
有,轻量
小游戏、内嵌编辑器、极致体积
AntV G6
React/Canvas
手动 + Shape
❌
无
关系图、网络图、可视化分析

结论:

  • 如果你主技术栈是 Vue3,又想要“节点带类型 + 自动执行 + 可扩展主题”,BaklavaJS 是目前(2025 Q4)唯一开箱即用的解决方案。
  • 若你只要画流程图、不要运行节点,AntV X6 仍是首选;
  • 若你在 React 栈,React Flow 会更顺手;
  • 若你bundle 大小要求极致,LiteGraph.js 只有几十 KB。


仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/4821

more>>
相关栏目
SVG.js
包括各种形状、线条、文本、路径等元素
官网 GitHub
d3.js
基于HTML 和 SVG 的 JavaScript 可视化库
官网 GitHub
incubator-echarts
百度团队开发的一款商业级数据图表
官网 GitHub
g2
一套基于可视化编码的图形语法
官网 GitHub
Chartist.js
JavaScript响应式图表库
官网 GitHub
MetricsGraphics.js
一个基于 D3 的简洁的数据图表优化
官网 GitHub
plotly.js
基于d3.js 和stack.gl开源的 JavaScript 图表库
官网 GitHub
js-sequence-diagrams
一款基于 Javascript 的Web绘制时序图的工具
官网 GitHub
C3.js
基于D3.js开发的JavaScript库
官网 GitHub
crossfilter
一个数据计算模型,能够很好地结合DC.JS进行数据解析绘图
官网 GitHub
Processing.js
擅长创建2D和3D图象,可视化数据套件,音频,视频等
官网 GitHub
flowchart.js
基于SVG的流程图插件
官网 GitHub
Velocity.js
一个简单易用、高性能、功能丰富的轻量级JS动画库
官网 GitHub
popmotion.js
一款小巧,灵活的 JavaScript 运动引擎
官网 GitHub
js2flowchart.js
将任何 JavaScript 转换成漂亮的 SVG 流程图的可视化的图表库
点击进入 GitHub
jsplumb
一个开源的流程图或拓扑图绘制工具库(绘制页面链接线)
官网 GitHub

手机预览

首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。