Semi Design 快速入门指南:React 组件库的安装与使用

Semi Design 快速入门指南:React 组件库的安装与使用

semi-design 🚀A modern, comprehensive, flexible design system and React UI library. 🎨 Provide more than 2800+ Design Tokens, easy to build your design system. Make Semi Design to Any Design. 🧑🏻‍💻 Design to Code in one click semi-design 项目地址: https://gitcode.com/gh_mirrors/se/semi-design

Semi Design 是由抖音前端团队精心打造的一款企业级 React UI 组件库,提供了 70+ 高质量的开箱即用组件,能够显著提升前端开发效率。本文将详细介绍如何在不同场景下安装和使用 Semi Design。

一、Semi Design 简介

Semi Design 是一个现代化的 React UI 组件库,具有以下特点:

  • 提供丰富的 React 组件(按钮、表单、导航、数据展示等)
  • 支持 React v16、v17、v18 版本
  • 内置国际化支持
  • 提供主题定制能力
  • 支持按需加载
  • 配套提供图标库和插画库

二、基础安装

1. 使用包管理器安装

根据项目使用的包管理器,选择以下命令之一进行安装:

# 使用 npm
npm i @douyinfe/semi-ui

# 使用 yarn
yarn add @douyinfe/semi-ui

# 使用 pnpm
pnpm add @douyinfe/semi-ui

2. 基本使用示例

安装完成后,可以直接在 React 组件中引入使用:

import React from 'react';
import { Button, Toast } from '@douyinfe/semi-ui';

const App = () => {
    return (
        <Button onClick={() => Toast.warning({ content: '欢迎使用 Semi Design' })}>
            点击测试
        </Button>
    );
};

export default App;

3. 样式重置建议

为了确保组件在不同浏览器中表现一致,建议在项目中引入 reset.css:

npm install reset-css

然后在项目入口文件中引入:

import 'reset-css';

三、在 Next.js 中使用

1. 基本配置(Next.js ≥ v13.1)

对于使用默认主题的项目,只需在 next.config.js 中配置 transpilePackages:

// next.config.js
const nextConfig = {
  transpilePackages: [
    '@douyinfe/semi-ui', 
    '@douyinfe/semi-icons', 
    '@douyinfe/semi-illustrations'
  ],
};

module.exports = nextConfig;

2. 使用定制主题

如需使用定制主题,需要安装 @douyinfe/semi-next 插件:

npm i @douyinfe/semi-next

配置 next.config.js:

const semi = require('@douyinfe/semi-next').default();
module.exports = semi({
  // 自定义 Next.js 配置
});

在全局样式中引入主题 CSS:

/* styles/globals.css */
@import '~@douyinfe/semi-ui/dist/css/semi.min.css';

3. 使用特定主题包

如需使用特定主题(如抖音创作服务平台主题),修改引入路径:

/* styles/globals.css */
@import '~@semi-bot/semi-theme-doucreator/semi.min.css';

四、在 Remix 中使用

1. 基本配置(Remix v1)

确保 @remix 相关包版本 > 1.11.0,并安装 @remix-run/css-bundle:

npm install @remix-run/css-bundle

配置 remix.config.js:

module.exports = {
  future: {
    unstable_cssSideEffectImports: true,
  },
  serverDependenciesToBundle: [
    /^@douyinfe\/semi-ui/,
    /^@douyinfe\/semi-icons/,
    /^@douyinfe\/semi-illustrations/,
  ],
};

在 root.tsx 中配置 CSS 打包:

import { cssBundleHref } from "@remix-run/css-bundle";

export const links = () => {
  return [
    ...(cssBundleHref ? [{ rel: "stylesheet", href: cssBundleHref }] : []),
  ];
};

2. 使用定制主题

替换 cssBundleHref 为特定主题 CSS:

import ThemeStyle from "@semi-bot/semi-theme-doucreator/semi.min.css";

export const links = () => {
  return [
    { rel: "stylesheet", href: ThemeStyle },
  ];
};

五、UMD 方式使用(不推荐)

虽然不推荐,但在特殊场景下可以通过 UMD 方式直接引入:

<!DOCTYPE html>
<html>
<head>
  <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
  <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
  
  <script src="https://unpkg.com/@douyinfe/semi-ui@latest/dist/umd/semi-ui.min.js"></script>
  <link rel="stylesheet" href="https://unpkg.com/@douyinfe/semi-ui@latest/dist/css/semi.min.css">
  
  <script src="https://unpkg.com/@douyinfe/semi-icons@latest/dist/umd/semi-icons.min.js"></script>
  <link rel="stylesheet" href="https://unpkg.com/@douyinfe/semi-icons@latest/dist/css/semi-icons.min.css">
  
  <script src="https://unpkg.com/@douyinfe/semi-illustrations@latest/dist/umd/semi-illustrations.min.js"></script>
</head>
<body>
  <div id="root"></div>
  <script type="text/babel">
    const { Button, Toast } = SemiUI;
    ReactDOM.render(
      <Button onClick={() => Toast.warning('Hello Semi')}>测试</Button>,
      document.getElementById('root')
    );
  </script>
</body>
</html>

六、最佳实践建议

  1. 按需加载:在构建工具支持的项目中,Semi Design 会自动按需加载,无需额外配置

  2. 主题定制:对于需要品牌定制的项目,推荐使用主题包而不是直接修改 CSS

  3. 版本管理:建议锁定 Semi Design 的版本号,避免自动升级导致兼容性问题

  4. 组件封装:基于业务需求对 Semi 组件进行二次封装,提高代码复用性

通过本文的介绍,您应该已经掌握了 Semi Design 在各种场景下的安装和使用方法。这个强大的 React 组件库将帮助您快速构建美观、一致的用户界面。

semi-design 🚀A modern, comprehensive, flexible design system and React UI library. 🎨 Provide more than 2800+ Design Tokens, easy to build your design system. Make Semi Design to Any Design. 🧑🏻‍💻 Design to Code in one click semi-design 项目地址: https://gitcode.com/gh_mirrors/se/semi-design

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纪栋岑Philomena

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值