TMagic Editor 设计系统:@tmagic/design 组件库应用实践

TMagic Editor 设计系统:@tmagic/design 组件库应用实践

【免费下载链接】tmagic-editor 【免费下载链接】tmagic-editor 项目地址: https://gitcode.com/GitHub_Trending/tm/tmagic-editor

你还在为多框架组件开发的兼容性问题头疼吗?还在为设计规范不统一导致的视觉混乱烦恼吗?本文将带你全面掌握 @tmagic/design 组件库的设计理念与实战技巧,通过组件化开发提升 50% 页面搭建效率,让你的可视化平台兼具美观与高效。

读完本文你将获得:

  • 组件库的核心架构与跨框架设计思路
  • 5 分钟上手的快速集成指南
  • 10+ 基础组件的实战配置方案
  • 3 个企业级应用场景的最佳实践
  • 主题定制与性能优化的进阶技巧

组件库概述:设计系统的基石

@tmagic/design 作为 TMagic Editor 设计系统的核心组件库,基于 Vue3 + TypeScript 构建,提供了一套完整的企业级 UI 解决方案。其设计理念遵循"一次开发,多端适配"原则,通过统一的组件规范和交互模式,解决了可视化搭建平台中组件复用率低、设计不一致的行业痛点。

核心特性

  • 跨框架兼容:支持 Vue、React 等主流前端框架,通过适配器模式实现组件逻辑与渲染层解耦
  • 原子化设计:将 UI 元素拆分为最小可复用单元,如 ButtonText 等基础组件
  • 配置驱动:通过 JSON 配置即可生成复杂表单,大幅降低开发成本
  • 主题定制:内置 3 套主题方案,支持 CSS 变量实时切换

技术架构

组件库采用 monorepo 架构管理,核心代码位于 packages/design 目录下,包含以下模块:

{
  "name": "@tmagic/design",
  "version": "1.6.0",
  "main": "dist/tmagic-design.umd.cjs",
  "module": "dist/tmagic-design.js",
  "types": "types/index.d.ts",
  "dependencies": {
    "@popperjs/core": "^2.11.8"
  }
}

TMagic 设计系统架构

快速上手:从安装到使用

环境准备

确保本地环境满足以下要求:

  • Node.js ≥ 18.0.0
  • npm/yarn/pnpm 包管理工具
  • Vue 3.x 或 React 18+ 项目

安装组件库

# npm
npm install @tmagic/design --save

# yarn
yarn add @tmagic/design

# pnpm
pnpm add @tmagic/design

基础使用示例

以 Vue3 项目为例,实现一个带图标按钮:

<template>
  <div class="demo-container">
    <MagicButton 
      type="primary" 
      size="large" 
      :icon="Search"
      @click="handleClick"
    >
      搜索
    </MagicButton>
  </div>
</template>

<script setup>
import { MagicButton } from '@tmagic/design';
import { Search } from '@tmagic/icons';

const handleClick = () => {
  console.log('按钮点击事件触发');
};
</script>

核心组件实践

布局系统:容器组件应用

TMagic 设计系统提供了灵活的布局解决方案,通过 Container 组件实现复杂页面结构。以下是一个典型的后台管理系统布局:

{
  "type": "container",
  "direction": "vertical",
  "style": {
    "height": "100vh"
  },
  "items": [
    {
      "type": "container",
      "direction": "horizontal",
      "style": {
        "height": "60px",
        "background": "#0052d9"
      },
      "items": [/* 头部导航 */]
    },
    {
      "type": "container",
      "direction": "horizontal",
      "style": {
        "flex": 1
      },
      "items": [
        {/* 侧边栏 */},
        {/* 主内容区 */}
      ]
    }
  ]
}

布局系统示例

表单组件:配置驱动的实践

通过 Form 组件实现动态表单生成,支持 20+ 表单控件类型。以下是一个用户信息表单配置示例:

{
  "type": "form",
  "api": "/api/user/save",
  "fields": [
    {
      "type": "text",
      "name": "username",
      "label": "用户名",
      "required": true,
      "rules": [
        { "required": true, "message": "请输入用户名" }
      ]
    },
    {
      "type": "select",
      "name": "role",
      "label": "角色",
      "options": [
        { "label": "管理员", "value": "admin" },
        { "label": "普通用户", "value": "user" }
      ]
    }
  ]
}

表单配置支持联动规则,如根据用户选择动态显示不同字段组,具体可参考 表单联动 文档。

高级应用:从设计到落地

主题定制方案

组件库支持通过 CSS 变量实现主题定制,以下是定制深色主题的示例代码:

:root {
  --tm-color-primary: #165DFF;
  --tm-color-success: #00B42A;
  --tm-color-warning: #FF7D00;
}

/* 深色主题 */
[data-theme="dark"] {
  --tm-color-primary: #4080FF;
  --tm-bg-color: #1D1E23;
}

通过 ThemeProvider 组件可实现主题的动态切换,满足不同场景下的视觉需求。

性能优化策略

  1. 组件懒加载:通过动态导入减少初始加载体积
const Button = () => import('@tmagic/design/es/button')
  1. 虚拟滚动:处理大数据列表场景
{
  "type": "table",
  "virtualScroll": true,
  "height": 500
}
  1. 缓存策略:对高频使用的组件配置进行缓存
import { cacheComponentConfig } from '@tmagic/utils';
cacheComponentConfig('button', { size: 'small', type: 'primary' });

企业级案例实践

案例一:可视化编辑器

在 TMagic Editor 自身的编辑器界面中,大量使用了 ContainerOverlay 等组件构建复杂布局,通过 CodeBlock 组件实现代码编辑功能。

代码块组件

案例二:数据源管理

通过 DataSource 组件实现接口数据的可视化配置,支持 REST API、JSONP 等多种数据类型。

数据源配置

案例三:组件联动系统

利用 EventBus 实现跨组件通信,构建复杂的页面交互逻辑。以下是一个商品筛选联动示例:

// 监听筛选条件变化
app.event.on('filter:change', (filters) => {
  // 更新列表数据
  app.service.get('table').loadData({ filters });
});

总结与展望

@tmagic/design 组件库作为 TMagic Editor 设计系统的核心,通过"配置驱动+组件化"的设计理念,大幅降低了可视化搭建平台的开发门槛。其跨框架特性和灵活的扩展机制,使其能够适应不同业务场景的需求。

未来组件库将重点优化以下方向:

  • 新增 10+ 高频业务组件
  • 完善移动端适配方案
  • 提供低代码平台的 AI 辅助设计功能

通过 贡献指南,欢迎社区开发者参与组件库的共建,共同推动可视化搭建技术的发展。

本文示例代码已同步至 TMagic Editor 官方仓库,可通过 git clone https://link.gitcode.com/i/0fec512be828d5f637ac4046070a8757 获取完整代码。

【免费下载链接】tmagic-editor 【免费下载链接】tmagic-editor 项目地址: https://gitcode.com/GitHub_Trending/tm/tmagic-editor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值