lable_studio前端页面逻辑

  1. AppStore 创建

  1. App.jsx 渲染(使用 observer)

  1. 传递 store 给 TopBar

  1. TopBar 访问 store.project(observer 自动跟踪)

  1. 当 store.project 变化时

  1. observer 检测到变化

  1. 自动重新渲染 TopBar

1. App.jsx 的作用

App.jsx 是标注页面的根组件,负责:

主要职责:

  1. 渲染整个标注界面布局
  • TopBar(顶部工具栏)
  • BottomBar(底部工具栏)
  • SidePanels(侧边栏)
  • 主标注区域
  1. 管理页面状态
  • 加载状态(store.isLoading)
  • 无任务状态(store.noTask)
  • 无访问权限(store.noAccess)
  • 标注成功(store.labeledSuccess)
  1. 传递 store 给子组件
  • 第 308 行:<TopBar store={store}/>
  • 第 321 行:<BottomBar store={store}/>
  • 所有子组件都接收同一个 store 实例

架构说明

1. AppStore.js 的作用

  • 位置:web/libs/editor/src/stores/AppStore.js
  • 作用:标注页面的核心状态管理(使用 MobX-State-Tree)
  • 管理内容:
  • project:项目信息
  • task:当前任务
  • annotationStore:标注数据
  • user:用户信息
  • 其他 UI 状态

2. TopBar.jsx 中的 store

  • store 就是 AppStore 的实例
  • 通过 observer 包装,可响应式访问 store.project
  • 在 App.jsx 中传递:<TopBar store={store}/>

2. observer 是什么?

observer 来自 mobx-react,用于让 React 组件响应 MobX 状态变化。

工作原理:

TypeScript 复制代码
// 没有 observer 的普通组件
const TopBar = ({store}) => {
  const project = store.project; // ❌ 读取了,但不会自动更新
  return <div>{project?.id}</div>;
};

// 使用 observer 的组件
const TopBar = observer(({store}) => {
  const project = store.project; // ✅ 读取了,会自动跟踪变化
  return <div>{project?.id}</div>;
});
相关推荐
@PHARAOH15 分钟前
WHAT - GitLens vs Fork
前端
yqcoder29 分钟前
前端性能优化:如何减少重绘与重排?
前端·性能优化
洋子1 小时前
Yank Note 系列 13 - 让 AI Agent 进入笔记工作流
前端·人工智能
wenzhangli73 小时前
Ooder A2UI 核心架构深度解析:WEB 拦截层的设计与实现
前端·架构
前端百草阁4 小时前
【前端性能优化全链路指南】从开发编写到构建运行的多维度实践
前端·性能优化
女生也可以敲代码4 小时前
AI时代下的50道前端开发面试题:从基础到大模型应用
前端·面试
ZhengEnCi4 小时前
M5-markconv自定义CSS样式指南 📝
前端·css·python
IT_陈寒5 小时前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端
xingpanvip5 小时前
星盘接口开发文档:星相日历接口指南
android·开发语言·前端·css·php·lua
@PHARAOH5 小时前
WHAT - GitLens supercharged 插件
前端