如何在React.js中使用Shadcn/UI

news/2025/2/28 20:28:45/文章来源:https://www.cnblogs.com/minxi/p/18744011

如何在React.js中使用Shadcn/UI

学习如何在React.js中使用Shadcn/UI构建可自定义且轻量的界面。了解如何将其与Apipost集成,以实现高效的API管理和测试。非常适合希望提升React.js项目的开发者!

interfaces.png

使用Shadcn/UI构建现代化界面

创建简洁的用户界面是前端开发者的主要目标之一。随着组件库的兴起,这一任务变得更加简化。今天,我们将深入探讨Shadcn/UI,这是一款为React.js打造的强大且可定制的组件库。无论你是React.js新手还是经验丰富的开发者,Shadcn/UI都能提升你应用的设计,同时避免了大型框架的臃肿。此外,我们还将探讨如何将Apipost等API工具集成,以使开发过程更加顺畅。

什么是Shadcn/UI?

在开始设置之前,让我们先明确Shadcn/UI是什么,为什么它是你React.js项目的理想选择。

Shadcn/UI.png

Shadcn/UI是为React.js构建的一个可定制的组件库。与像Material UI或Bootstrap这样的大型框架不同,Shadcn/UI提供了更多的控制权,让你可以定制组件的外观和功能。它提供了核心构建块,使你可以创建一个独特的界面,而不必被预定义的主题所限制。

为什么选择Shadcn/UI?

  • 轻量级: 不像包含大量未使用组件的庞大库,Shadcn/UI只提供你所需要的组件。
  • 可定制: 你可以根据项目的独特需求来定制组件。
  • 优化React.js: 无缝集成,让你专注于编码,而不是配置。
  • 支持API: 与Apipost等工具兼容,简化了React应用中的API端点管理和测试。

在React.js项目中集成Shadcn/UI

现在你了解了Shadcn/UI,让我们一起走过如何将它集成到React.js项目中的过程。以下指南假设你已经具备React的基本知识,并且你的机器上已安装Node.js。

第一步:创建一个新的React.js项目

如果你已经有一个React.js项目,可以跳过这一步。否则,使用以下命令创建一个新的项目:

npx create-react-app my-shadcn-ui-app
cd my-shadcn-ui-app
npm start

这将创建一个名为my-shadcn-ui-app的新React.js项目并启动开发服务器。你应该可以看到默认的React应用运行。

第二步:安装Shadcn/UI

手动添加必要的依赖项,请按照以下步骤操作:

  1. 添加Tailwind CSS: Shadcn/UI组件是使用Tailwind CSS样式的。请按照Tailwind CSS安装指南开始安装。

  2. 安装依赖:

npm install tailwindcss-animate class-variance-authority clsx tailwind-merge
  1. 安装图标库:

    • 默认样式:npm install lucide-react
    • New York样式:npm install @radix-ui/react-icons
  2. 配置路径别名:
    tsconfig.json中,根据需要配置路径别名。以下是使用@别名的示例:

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

现在你可以开始将组件添加到你的项目中了。

第三步:导入并使用Shadcn/UI组件

让我们将一些Shadcn/UI组件添加到你的React.js应用中。在src/App.js文件中,导入并使用一个像按钮这样的组件:

import React from 'react';
import { Button } from 'shadcn-ui';function App() {return (<div className="App"><header className="App-header"><h1>欢迎来到我的Shadcn/UI应用</h1><Button variant="primary">点击我!</Button></header></div>);
}export default App;

在这里,我们导入了Button组件,并在App组件中使用它。通过传递不同的props来定制组件——在本例中,使用variant="primary"来指定主按钮样式。

第四步:定制Shadcn/UI主题

Shadcn/UI最棒的特点之一是它的可定制性。你可以调整组件,使其与应用的设计语言保持一致。

a) 创建自定义主题文件

src目录中创建一个theme.js文件:

const theme = {colors: {primary: '#ff6347', // 番茄红secondary: '#4caf50', // 绿色},fonts: {body: 'Arial, sans-serif',heading: 'Georgia, serif',},
};export default theme;

b) 将主题应用到组件

使用ThemeProvider组件应用你的主题。更新src/App.js文件如下:

import React from 'react';
import { Button, ThemeProvider } from 'shadcn-ui';
import theme from './theme';function App() {return (<ThemeProvider theme={theme}><div className="App"><header className="App-header"><h1>欢迎来到我的Shadcn/UI应用</h1><Button variant="primary">点击我!</Button></header></div></ThemeProvider>);
}export default App;

在更新后的代码中,ThemeProvider组件包裹了你的应用,并将自定义主题作为prop传递给它。

第五步:在React.js中使用Shadcn/UII的最佳实践

你的前端看起来很棒,现在是时候通过连接API来实现它的功能了。以下是一些优化使用Shadcn/UI的最佳实践:

  • 优化性能: 仅使用必要的Shadcn/UI组件,以保持捆绑包的大小最小。
  • 模块化组件: 将UI分解成小而可重用的组件。
  • 测试API: 使用Apipost对API端点进行彻底测试,确保其功能正常。
  • 使用版本控制: 定期提交更改,以避免丢失进展,并促进团队协作。

结论:使用Shadcn/UI建立React.js应用

恭喜你!你现在已经掌握了如何在React.js项目中使用Shadcn/UI,从设置库到定制组件。

无论是构建内部工具还是面向客户的应用,Shadcn/UI都提供了灵活性,可以创造独特的界面,

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

若依开发遇到的问题五

今天在写pdf上传文件接口的时候发生以下的情况:路径很明确,所以直接找过来:是这个类没有下载完成,顶端有提示下载,点击下载,问题解决

[深度学习] 大模型学习2-提示词工程指北

在文章大语言模型基础知识里,提示词工程(Prompt Engineering)作为大语言模型(Large Language Model,LLM)应用构建的一种方式被简要提及,本文将着重对该技术进行介绍。 提示词工程就是在和LLM聊天时,用来让模型回答得更好的一种方法。LLM的工作原理是猜下一个字或词是什…

20250228打卡

大创项目初版完工

Meta 无预警发布新一代 AI 眼镜 Aria Gen 2;腾讯混元 Turbo S 模型将长短思维链融合丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

关于我在使用Steamlit中碰到的问题及解决方案总结

Steamlit 并不支持一个可以预览本地文件的路径选择器(并不上传文件) 解决方案:使用 Python 自带的 tkinter 来完成 参考:【Streamlit 选择文件夹的曲折方案】Streamlit选择文件夹-CSDN博客 import streamlit as st from tkinter import filedialog, Tk# Set up tkinter roo…

day10 管道符grep 和 find

day10 管道符grep 和 find grep 命令 grep 是对于数据进行查找的关键词 源数据可以是文件内容 grep hello /opt/hello.txt,找出存在hello的那一行 命令的执行结果 ,这个需要结合管道符使用,cat /etc/passwd | grep root测试数据I teach linux.I like python.My qq is 877…

[豪の学习笔记] JavaReStudy#07

IDEA常用快捷键、包、访问修饰符、OOP封装、OOP继承、super关键字、方法重写/覆盖、OOP多态、Object类详解面向对象编程-进阶部分 1 - IDEA常用快捷键 1.删除当前行 ctrl+Y 2.查看一个类的层级关系 ctrl+H 3.定位方法 ctrl+B 4.自动分配变量名,在后面加 .var 5.导入该行需要的…

HTB GreenHorn (源码审计、PDF修复) 随笔

一、端口信息扫描 Spawn Machine后拿到了IP,先nmap扫一下,输入nmap -sV -sC -v 10.10.11.25 -Pn探到了22,80,3000端口,并且可以发现80端口重定向到了http://greenhorn.htb/页面 输入vim /etc/hosts打开一下hosts文件,添加10.10.11.25 greenhorn.htb再探测一下子域名,看看…

CS144 Lab2

CS144 Lab2 开始有点痛苦了,因为文档给的并不全面,光读文档是没法覆盖所有的test case的,有太多的业务逻辑要自己考虑。接下来分别就几个难点总结一下: SYN/FIN 有几种情况要特判:当前没收到过SYN,要拒绝所有的segment 当前收到过SYN了,又收到了新的SYN,这得拒绝 当前收…

msyql三表命令

一、建表 create table student( stu_no int, stu_name varchar(10), sex char(1), age int(3), edit varchar(20) ) DEFAULT charset=utf8; insert into student values (1,wang,男,21,hello), (2,小明,女,22,haha2), (3,hu,女,23,haha3), (4,li,男,25,haha4); create table …

活动报名:Voice Agent 技术现状及应用展望丨 3.8 北京

「人人发言,所有人向所有人学习!」——Z 沙龙「一起探索下一代语音驱动的人机交互界面。」——RTE 开发者社区3 月 8 日周六下午,北京,「智谱 Z 计划&Z Fund」和「RTE 开发者社区」将合办一场 Voice Agent 主题的线下活动。多家语音模型的技术负责人,多个落地场景(AI…

Advance Installer Appium环境配置

安装参数文件同步环境变量 Path = [python_Dir];[NodeJS_Dir];[AndroidSDK_Dir];[redis_Dir]