Shadcn UI

从零开始使用 Shadcn UI。

image

1. 前期准备

1.1. 安装 Node.js 和 npm

Node.js 是一个 JavaScript 运行环境,而 npm 是 Node.js 的包管理工具。

你需要先安装它们:

  • 下载 Node.js:访问 Node.js 官方网站,下载并安装最新的 LTS 版本。安装 Node.js 时会自动安装 npm。

1.2. 安装 Visual Studio Code

Visual Studio Code(VS Code)是一个流行的代码编辑器。

你可以从其官方网站下载并安装。

2. 创建 React 项目

2.1. 创建项目文件夹

在你的电脑上创建一个新的文件夹,例如 my-shadcn-app

2.2. 打开终端

在 Windows 上,你可以使用命令提示符(CMD)或 PowerShell。

在 Mac 和 Linux 上,你可以使用终端。

2.3. 初始化项目

在终端中,导航到你创建的文件夹,然后运行以下命令来初始化一个新的 React 项目(TypeScript 模板):

npm create vite@latest . -- --template react-ts

初始化完成后,当前文件夹中就会生成一个基础的 React 项目。

2.4. 进入项目文件夹

cd my-shadcn-app

然后安装项目依赖:

npm install

3. 安装 Shadcn UI 和 Tailwind CSS

Shadcn UI 不是传统的 npm 组件库,组件代码需要通过 CLI 直接生成到项目中,因此要先完成 Tailwind CSS 与路径别名的配置,再初始化 Shadcn UI。

3.1. 安装 Tailwind CSS

Tailwind CSS 提供官方的 Vite 插件,在终端中运行以下命令安装:

npm install tailwindcss @tailwindcss/vite

3.2. 配置 Vite

安装 Node.js 的类型定义,然后编辑项目根目录下的 vite.config.ts 文件:

npm install -D @types/node
import path from "path"
import tailwindcss from "@tailwindcss/vite"
import react from "@vitejs/plugin-react"
import { defineConfig } from "vite"

export default defineConfig({
  plugins: [react(), tailwindcss()],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
})

3.3. 配置路径别名

tsconfig.jsontsconfig.app.jsoncompilerOptions 中添加以下配置,以便从 @ 路径导入组件:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

3.4. 引入 Tailwind CSS 样式

src 文件夹中的 index.css 文件内容替换为以下内容:

@import "tailwindcss";

3.5. 初始化 Shadcn UI

在终端中运行以下命令,按照提示完成初始化(选择默认配置即可):

npx shadcn@latest init

然后添加本教程用到的 Button 组件:

npx shadcn@latest add button

组件代码会被生成到 src/components/ui 文件夹中。

4. 使用 Shadcn UI 组件

4.1. 创建一个简单的组件

src 文件夹中找到 App.tsx 文件,并将其内容替换为以下代码:

import { Button } from "@/components/ui/button"

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <Button>点击我</Button>
      </header>
    </div>
  );
}

export default App;

4.2. 运行项目

在终端中运行以下命令启动开发服务器:

npm run dev

打开浏览器,访问 http://localhost:5173,你应该能看到一个带有"点击我"按钮的页面。

5. 详细操作步骤

5.1. 安装 VS Code 插件

为了提高开发效率,你可以在 VS Code 中安装以下插件:

  • ESLint:帮助你保持代码风格一致。
  • Prettier:自动格式化代码。
  • Tailwind CSS IntelliSense:提供 Tailwind CSS 的智能提示。

5.2. 创建更多组件

你可以在 src/components 文件夹中创建新的组件文件,例如,创建一个 MyButton.tsx 文件:

import { Button } from "@/components/ui/button"

const MyButton = () => {
  return <Button>自定义按钮</Button>
}

export default MyButton

然后在 App.tsx 中引入并使用这个新组件:

import MyButton from "./components/MyButton"

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <MyButton />
      </header>
    </div>
  );
}

export default App;

5.3. 学习基础 HTML 和 CSS

为了更好地理解和使用 Shadcn UI,你可以学习一些基础的 HTML 和 CSS 知识。

这将帮助你更好地定制和调整组件的样式。

通过以上步骤,你应该能够从零开始使用 Shadcn UI 并创建简单的 React 应用。

如果你遇到问题,可以参考 shadcn/ui 官方文档或社区资源获取帮助。