Tldraw 是面向 React 的开源无限画布开发库,支持在网页中构建具备绘图、文本输入、媒体嵌入等功能的交互式白板应用。
packages:存放核心功能包,如绘图引擎、工具集等
apps:示例应用模块,包含多个演示项目
templates:项目模板,用于快速初始化开发环境
1、克隆代码仓库: git clone https://github.com/tldraw/tldraw.git 2、安装依赖: 先通过 npm i -g corepack 启用 Yarn 核心包管理,然后执行 yarn 安装所有依赖 3、启动本地开发服务器: 运行 yarn dev 后,访问 http://localhost:5420 查看示例应用
基础集成
通过 NPM 安装核心包: npm install tldraw
在 React 组件中引入并渲染画布:
import { Tldraw } from 'tldraw';
import 'tldraw/tldraw.css';
export default function App() {
return (
<div style={{ position: 'fixed', inset: 0 }}>
<Tldraw />
</div>
);
}
此时会呈现一个基础画布,支持画笔绘制、文本输入、缩放平移、撤销重做等功能。
数据持久化
通过 persistenceKey 属性开启本地存储:
<Tldraw persistenceKey="your-project-key" />
该配置会使用浏览器本地存储,实现画布内容在刷新页面或跨标签页时的同步。
实时协作功能 1、安装协作库: npm install @tldraw/sync 2、使用协作钩子创建共享存储:
import { useSyncDemo } from '@tldraw/sync';
const store = useSyncDemo({ roomId: 'unique-room-id' });
<Tldraw store={store} />
不同设备或窗口访问相同 roomId 时,可实现实时 cursor 同步、用户状态显示、视角跟随等协作功能。
通过 API 控制画布
利用 onMount 回调获取编辑器实例,实现程序化操作:
const handleMount = (editor) => {
// 创建文本形状
editor.createShape({
type: 'text',
x: 200,
y: 200,
props: { richText: toRichText('Hello world!') }
});
// 全选并平滑缩放至选中内容
editor.selectAll();
editor.zoomToSelection({ animation: { duration: 5000 } });
};
<Tldraw onMount={handleMount} />
Editor 实例提供丰富 API,可控制形状创建、选择、变换、布局等操作,更多内容参考官方 API 文档 tldraw.dev/docs/api/editor 。
目录/文件
功能描述
.github
GitHub 工作流配置(如 CI/CD)
.husky
Git 钩子脚本,用于代码校验
assets
国际化文本、图标等静态资源
internal
内部工具包,非公开 API
CHANGELOG.md
版本变更记录
LICENSE.md
授权协议(需保留「Powered by tldraw」水印)
package.json
项目依赖与脚本配置
定制化开发
1、自定义形状:通过继承 Shape 类实现自定义图形渲染逻辑
2、工具扩展:开发自定义工具,如流程图工具、原型设计工具等
3、界面定制:覆盖 CSS 样式或替换 UI 组件,适配品牌视觉风格
4、数据同步:集成自有后端实现数据持久化,替代默认的本地存储或协作方案
PowerPoint演示文稿智能生成工具 PowerPoint Slides Skill
金融 AI 新工具 FinClaw,免费提供1000+ 金融专属Skills
PPT Agent 演示文稿生成框架
端到端自主AI科研引擎 NanoResearch
CitationClaw 学术论文智能引用画像和分析报告
pi-autoresearch:pi自动化实验优化循环
OpenClaw Control Center:为OpenClaw用户(包括团队和个人)提供统一的监控和管理界面
OpenClaw Dashboard 仪表盘:让OpenClaw管理更简单
PaperBanana-CN 学术配图助手
996.ICU:工作 996, 生病 ICU