简介及架构

基于 tvt.js 生态的动态组件发布与加载服务 Dynamic Component Service for tvt.js

👇🏻 演示预览地址:dcser.icegl.cnopen in new window

tres.js webgl three.js

📦 项目开源地址: 👉 https://gitee.com/ice-gl/dynamic-component-serviceopen in new window

✨ 项目简介

dynamic-component-service(loadDynamicComponent)tvt.js 生态下的一套动态组件发布、加载与调试解决方案

它的核心目标是: 让 自研或第三方组件 可以 脱离 tvt.js 开源基座独立维护, 同时又能被 tvt.js 在线编辑器动态加载,获得完整编辑能力,并支持源码导出与二次开发。

🎯 设计目的

1️⃣ 解耦商业组件与 tvt.js 基座

  • 一些开发者的组件属于 商业项目
  • 不希望直接提交到 tvt.js 开源仓库
  • 希望组件 独立发布、独立部署
  • 但在生产项目中,仍然可以通过 tvt.js 基座动态加载并使用

👉 dynamic-component-service 提供了一种 解耦但可集成 的方案。

2️⃣ 动态组件 + 在线编辑 + 源码导出

  • 自研或第三方代码 简单封装成「动态组件」

  • 挂载到 tvt.js 在线三维场景编辑器

  • 自动获得:

    • 组件参数可视化配置
    • 与现有 高级组件 / 模型库 / 场景系统 联动
  • 支持:

    • 在线调试与预览
    • 导出组件配置
    • 直接导出插件源码包
    • 在 tvt.js 基座中进行 二次开发

🧱 技术栈说明

技术说明
Vue 3tvt.js 生态整体基于 Vue 3
@originjs/vite-plugin-federation动态组件发布与加载的核心机制
Three.js三维渲染基础
Tres.jsVue + Three.js 的桥接方案
@tresjs/cientos常用 Three.js 高级组件集合

关于 vite-plugin-federation

本项目通过 @originjs/vite-plugin-federation 实现动态组件的 发布 / 远程加载 / 模块共享