使用 Vite + React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南

使用 Vite + React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南

    • 🌟 前言
    • 一、创建 React 19 项目
    • 二、集成 Tailwind CSS
      • 1️⃣ 安装依赖
      • 2️⃣ 配置 Vite 插件
      • 3️⃣ 引入 Tailwind
      • 4️⃣ 启动项目
    • 三、配置路径别名
      • 1️⃣ 修改 TypeScript 配置
      • 2️⃣ 安装类型声明
      • 3️⃣ 配置 Vite 别名解析
    • 四、集成 shadcn/ui 组件库
      • 1️⃣ 初始化配置
      • 2️⃣ 添加示例组件
    • 五、项目结构预览
    • 💡 常见问题
    • 🚀 最佳实践
    • 参考文档

Vite+React+Tailwind+shadcn

🌟 前言

随着 React 19 的发布,开发者对高效开发工具链的需求日益增加。本文将手把手教你如何通过 Vite 快速搭建 React 19 项目,并整合 Tailwind CSSshadcn/ui 组件库,最后配置路径别名优化开发体验。


一、创建 React 19 项目

使用 pnpm 快速初始化项目:

pnpm create vite --template=react-ts

按提示输入项目名称后进入项目目录。


二、集成 Tailwind CSS

1️⃣ 安装依赖

npm install tailwindcss @tailwindcss/vite

2️⃣ 配置 Vite 插件

修改 vite.config.ts

import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
  plugins: [tailwindcss()],
})

3️⃣ 引入 Tailwind

创建 style.css, 顶部添加:

@import "tailwindcss";

4️⃣ 启动项目

npm run dev

三、配置路径别名

1️⃣ 修改 TypeScript 配置

tsconfig.json

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

tsconfig.app.json

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

2️⃣ 安装类型声明

pnpm add -D @types/node

3️⃣ 配置 Vite 别名解析

更新 vite.config.ts

import path from "path"
import { defineConfig } from "vite"

export default defineConfig({
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
})

四、集成 shadcn/ui 组件库

1️⃣ 初始化配置

pnpm dlx shadcn@canary init

根据提示选择:

  • 使用 Tailwind CSS
  • 配置组件目录
  • 启用 dark mode

2️⃣ 添加示例组件

pnpm dlx shadcn@canary add sidebar-08

五、项目结构预览

my-project/
├── src/
│   ├── components/  # shadcn 组件
│   ├── App.tsx
│   └── style.css
├── vite.config.ts
├── tailwind.config.js
└── tsconfig.json

💡 常见问题

  1. React 19 兼容性:目前需使用 @canary 版本
  2. 样式不生效:检查 CSS 导入顺序
  3. 路径别名失效:重启 IDE 并验证配置

🚀 最佳实践

  • 使用 @/components 导入自定义组件
  • 定期更新 shadcn 组件库

参考文档

  • Vite 官方文档
  • Tailwind CSS v4 指南
  • shadcn/ui 文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/970292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Go语言 XTA AI聊天界面实现

项目开源地址: XTA-AI-SDK 人工智能技术的迅速发展,AI聊天应用变得越来越流行。本文将介绍如何使用Go语言和LCL库( Lazarus Component Library)创建一个功能丰富的AI聊天界面。项目主要包含以下模块: 项目背景 本项目旨在为开发…

Spring安装和使用(Eclipse环境)

一、Spring框架概述 1、 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复…

石子合并

断环为链。 环形的最优合并方式&#xff0c;一定可以展开成长为n的链来处理。 怎样才是最优的合并方式&#xff1f; n<100。 枚举处理。 #include<bits/stdc.h> using namespace std;signed main() {int n; cin>>n;vector<int>a(nnn1),suma;for(int …

在nodejs中使用RabbitMQ(六)sharding消息分片

RabbitMQ 的分片插件&#xff08;rabbitmq_sharding&#xff09;允许将消息分布到多个队列中&#xff0c;这在消息量很大或处理速度要求高的情况下非常有用。分片功能通过将消息拆分到多个队列中来平衡负载&#xff0c;从而提升消息处理的吞吐量和可靠性。它能够在多个队列之间…

半遮挡检测算法 Detecting Binocular Half-Occlusions

【1. 背景】&#xff1a; 本文分析【Detecting Binocular Half-Occlusions&#xff1a;Empirical Comparisons of Five Approaches】Geoffrey Egnal和Richard P. Wildes于2002年发表在IEEE Transactions on Pattern Analysis and Machine Intelligence上&#xff0c;这是1篇中…

《open3d +pyqt》AABB计算

《open3d +pyqt》AABB计算 一、效果展示二、qt设置2.1界面设置2.2 py文件生成三、核心代码一、效果展示 二、qt设置 2.1界面设置 添加动作AABB: 布局参数: 2.2 py文件生成 更新Mainwindow.py 生成py文件 三、核心代码 代码如下: main.py文件

CAS单点登录(第7版)10.多因素身份验证

如有疑问&#xff0c;请看视频&#xff1a;CAS单点登录&#xff08;第7版&#xff09; 多因素身份验证 概述 多因素身份验证 &#xff08;MFA&#xff09; 多因素身份验证&#xff08;Multifactor Authentication MFA&#xff09;是一种安全机制&#xff0c;要求用户提供两种…

LeetCode1706

LeetCode1706 目录 LeetCode1706题目描述示例题目理解问题描述 示例分析思路分析问题核心 代码段代码逐行讲解1. 获取网格的列数2. 初始化结果数组3. 遍历每个球4. 逐行模拟下落过程5. 检查是否卡住6. 记录结果7. 返回结果数组 复杂度分析时间复杂度空间复杂度 总结的知识点1. …

坐井说天阔---DeepSeek-R1

前言 DeepSeek-R1这么火&#xff0c;虽然网上很多介绍和解读&#xff0c;但听人家的总不如自己去看看原论文。于是花了大概一周的时间&#xff0c;下班后有进入了研究生的状态---读论文。 DeepSeek这次的目标是探索在没有任何监督数据的情况下训练具有推理能力的大模型&#…

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了&#xff0c;海报编辑器换方案了&#xff0c;如果后面用别的再更。 缘由-胡扯 导火…

滑动窗口算法篇:连续子区间与子串问题

1.滑动窗口原理 那么一谈到子区间的问题&#xff0c;我们可能会想到我们可以用我们的前缀和来应用子区间问题&#xff0c;但是这里对于子区间乃至子串问题&#xff0c;我们也可以尝试往滑动窗口的思路方向去进行一个尝试&#xff0c;那么说那么半天&#xff0c;滑动窗口是什么…

resultType,jdbcType,parameterType区别

1. resultType 用途&#xff1a; 用于定义 SQL 查询结果的返回类型。 直接将查询结果映射到指定的 Java 类型&#xff08;基本类型、POJO 或 Map&#xff09;。 特点&#xff1a; 要求数据库字段名与 Java 对象的属性名完全一致&#xff08;或通过别名匹配&#xff09;。 …

数字化转型导师坚鹏:AI大模型DEEPSEEK使用方法及案例

AI大模型DEEPSEEK使用方法及案例 ——提升职场人士工作效率 打造数字化转型新利器 课程背景&#xff1a; 很多企业和员工存在以下问题&#xff1a; 不知道DEEPSEEK的发展现状及价值&#xff1f;不知道DEEPSEEK提示词设计方法论&#xff1f;不知道DEEPSEEK的针对性使用案例&…

Spring Boot项目接收前端参数的11种方式

大家好&#xff0c;我是。在前后端项目交互中&#xff0c;前端传递的数据可以通过HTTP请求发送到后端&#xff0c; 后端在Spring Boot中如何接收各种复杂的前端数据呢&#xff1f;这篇文章总结了11种在Spring Boot中接收前端数据的方式。 1 搭建项目 1.通过Spring Initializr…

Deesek:新一代数据处理与分析框架实战指南

Deesek&#xff1a;新一代数据处理与分析框架实战指南 引言 在大数据时代&#xff0c;高效处理和分析海量数据是企业和开发者面临的核心挑战。传统工具如Pandas、Spark等虽功能强大&#xff0c;但在实时性、易用性或性能上仍有提升空间。Deesek&#xff08;假设名称&#xff…

算法笔记 02 —— 入门模拟

本系列为胡凡编著的算法笔记当中代码部分的精简版整理&#xff0c;笔者也在同时准备Leetcode刷题和实习面试&#xff0c;希望为有一定编码和数据结构基础的同学提供一份系统型的参考&#xff0c;以方便遗忘时的算法查阅、期末复习总览以及C学习参照。 目录 01 简单模拟 Ⅰ害…

Node.js技术原理分析系列——Node.js调试能力分析

本文由体验技术团队屈金雄原创。 Node.js 是一个开源的、跨平台的 JavaScript 运行时环境&#xff0c;它允许开发者在服务器端运行 JavaScript 代码。Node.js 是基于 Chrome V8引擎构建的&#xff0c;专为高性能、高并发的网络应用而设计&#xff0c;广泛应用于构建服务器端应…

LLaMA-Factory DeepSeek-R1 模型 微调基础教程

LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处…

Spring Boot实战:拦截器

一.拦截器快速入门 1.1了解拦截器 什么是拦截器&#xff1a; 概念 &#xff1a;拦截器是Spring框架提供的核功能之, 主要来拦截的请求, 在指定法前后, 根据业务需要执预先设定的代码。 也就是说, 允许开发员提前预定义些逻辑, 在的请求响应前后执. 也可以在请求前阻其执. …

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时&#xff0c;前面板的外观和布局至关重要。良好的设计不仅提升用户体验&#xff0c;还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点&#xff1a; 1. 前面板设计原则 交互性&#xff1a;组合相关的输入控件和显示控件&#x…