扫一扫分享
BaklavaJS 是 基于 vue3 + TypeScript 的浏览器端图节点编辑器,核心很小,所有能力(渲染、引擎、类型校验、主题)都以 插件 方式按需安装。
“节点即组件”一个 *:.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') 就能获得完整提示。
# 一次性把所有官方插件拉下来
npm i baklavajs
# 或者按需
npm i @baklavajs/core @baklavajs/engine @baklavajs/renderer-vue
// 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 };
},
});
<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>
npm run dev
打开浏览器,拖两个数字输入节点 → 连到乘法 → 点击“运行”,结果实时更新!
| BaklavaJS | |||||
结论:
仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!
手机预览