当前位置: 首页 > wzjs >正文

网站建设用什么软件好东莞网站建设兼职

网站建设用什么软件好,东莞网站建设兼职,建设银行内部审批哪些网站,微信公众平台小程序二维码怎么生成文章目录 前言✅ 核心特点📦 支持组件(常用)🚀 安装使用(框架支持)初始化(Next.js 项目为例)添加一个组件 🧠 对比其他组件库📘 官方资源✅ 总结✅ 功能特性&…

文章目录

  • 前言
    • ✅ 核心特点
    • 📦 支持组件(常用)
    • 🚀 安装使用(框架支持)
      • 初始化(Next.js 项目为例)
      • 添加一个组件
    • 🧠 对比其他组件库
    • 📘 官方资源
    • ✅ 总结
      • ✅ 功能特性:
    • 📦 依赖项(需先安装)
    • 🧱 页面代码:`ChatPage.tsx`
    • 🎨 可选样式增强(全局 CSS)
    • 🧪 进一步可添加功能


前言

shadcn/ui 是一个由社区维护的现代 UI 组件库模板集合,专为 React + Tailwind CSS 生态设计,主打:

  • ✨ 可完全控制样式 &行为(不像 MUI、AntD 那样封闭)
  • 🎯 基于 Radix UI(可访问性强)
  • 🧩 可选的组件拼装,不强绑设计系统
  • ⚙️ 支持 Server Component、SSR、RSC 等现代特性

✅ 核心特点

特性说明
✨ 美观现代默认采用干净、优雅的设计(类似 Vercel / Linear)
🎨 Tailwind 驱动100% Tailwind CSS 控制样式,自由修改
⚛️ Radix UI 底层提供无障碍可访问性支持(A11y)
🧱 可组合所有组件是“导入代码”的方式,无 run-time 限制
🔧 可维护性强你拥有组件代码本体(不再受限组件黑箱)

📦 支持组件(常用)

分类组件
表单Input, Textarea, Select, Switch, Checkbox, Form
弹窗Dialog, Popover, Tooltip, AlertDialog, Sheet
导航Tabs, Accordion, DropdownMenu, NavigationMenu
其他Toast, Badge, Card, Avatar, Skeleton, Progress

🚀 安装使用(框架支持)

支持 Vite、Next.js、Remix 等现代 React 框架。

初始化(Next.js 项目为例)

npx shadcn-ui@latest init

你会被提示:

  • 是否使用 TypeScript
  • UI 目录位置(如 components/ui
  • Tailwind 配置路径
  • 是否安装组件(如 Button, Dialog

添加一个组件

npx shadcn-ui@latest add button

生成的文件:

components/ui/button.tsx

你可以自由修改样式类或行为。


🧠 对比其他组件库

特性shadcn/uiMUIAnt DesignChakra UI
样式控制✅ 完全控制❌ 封闭❌ 封闭⚠️ 类似
设计系统⚠️ 提供默认样式✅ 有✅ 有✅ 有
SSR 支持✅ 优秀⚠️ 需调整⚠️ 有限⚠️ 有限
适合 Tailwind✅ 最佳搭配❌ 不兼容❌ 不兼容❌ 有冲突

📘 官方资源

  • 官网:https://ui.shadcn.com
  • GitHub:https://github.com/shadcn-ui/ui
  • Demo 示例:https://ui.shadcn.com/docs/components/slider

✅ 总结

适合你吗?条件
✅ 喜欢 Tailwind强烈推荐
✅ 需要 SSR / RSC 兼容推荐
✅ 想要样式可控且干净 UI推荐
❌ 想要“开箱即用 + Theme切换 + 组件黑盒”不太适合

下面是一个基于 shadcn/uiReactTailwind CSS 封装的 AI 聊天界面模板,具备如下特性:

✅ 功能特性:

  • 支持聊天消息滚动显示
  • 用户输入框 + 发送按钮
  • 显示用户消息和 AI 消息
  • 使用 shadcn/ui 组件:Input, Button, Card, ScrollArea, Skeleton
  • Tailwind 风格美观整洁

📦 依赖项(需先安装)

npx shadcn-ui@latest init
npx shadcn-ui@latest add button input card scroll-area

🧱 页面代码:ChatPage.tsx

import { useState, useRef, useEffect } from "react"
import { Input } from "@/components/ui/input"
import { Button } from "@/components/ui/button"
import { ScrollArea } from "@/components/ui/scroll-area"
import { Card, CardContent } from "@/components/ui/card"interface Message {role: "user" | "assistant"content: string
}export default function ChatPage() {const [messages, setMessages] = useState<Message[]>([])const [input, setInput] = useState("")const scrollRef = useRef<HTMLDivElement>(null)const handleSend = async () => {if (!input.trim()) returnconst userMsg: Message = { role: "user", content: input }setMessages((prev) => [...prev, userMsg])setInput("")// 模拟 AI 回复setTimeout(() => {const aiMsg: Message = {role: "assistant",content: `你说的是:“${userMsg.content}`}setMessages((prev) => [...prev, aiMsg])}, 1000)}useEffect(() => {scrollRef.current?.scrollIntoView({ behavior: "smooth" })}, [messages])return (<div className="flex flex-col h-screen p-4 max-w-2xl mx-auto"><h2 className="text-2xl font-bold mb-4">AI Chat Assistant</h2><ScrollArea className="flex-1 border rounded-lg p-4 space-y-2 bg-muted">{messages.map((msg, index) => (<Card key={index} className={msg.role === "user" ? "ml-auto bg-white" : "mr-auto bg-gray-100"}><CardContent className="p-3 text-sm whitespace-pre-wrap"><strong>{msg.role === "user" ? "You" : "AI"}:</strong> {msg.content}</CardContent></Card>))}<div ref={scrollRef} /></ScrollArea><div className="mt-4 flex gap-2"><Inputplaceholder="Ask something..."value={input}onChange={(e) => setInput(e.target.value)}onKeyDown={(e) => e.key === "Enter" && handleSend()}/><Button onClick={handleSend}>Send</Button></div></div>)
}

🎨 可选样式增强(全局 CSS)

body {@apply bg-background text-foreground;
}

🧪 进一步可添加功能

功能shadcn 组件建议
Markdown 渲染react-markdown 自定义卡片内容
Skeleton 骨架Skeleton 组件用于 AI 回复加载中
多轮对话滚动ScrollArea + useRef 自动滚动到底部
AI 流式回复useEffect 模拟逐字加载即可


文章转载自:

http://S1RjlEJe.gLnmm.cn
http://KvuybIws.gLnmm.cn
http://ClIk3SNb.gLnmm.cn
http://hPpoKlZK.gLnmm.cn
http://F9jo3L41.gLnmm.cn
http://aML6gBla.gLnmm.cn
http://8HcnQUNV.gLnmm.cn
http://eLvhPW8D.gLnmm.cn
http://mqKYwaBF.gLnmm.cn
http://Uo0pPJGm.gLnmm.cn
http://vjP3FOED.gLnmm.cn
http://SgkBtVQc.gLnmm.cn
http://Jz7Ue60F.gLnmm.cn
http://PkyVqoBa.gLnmm.cn
http://czQ6RyKW.gLnmm.cn
http://rVJlG2Be.gLnmm.cn
http://5PHwZ3ma.gLnmm.cn
http://5azogPJj.gLnmm.cn
http://YfBkiEey.gLnmm.cn
http://6ZwLdcYp.gLnmm.cn
http://rQxtD9D1.gLnmm.cn
http://gayWpj46.gLnmm.cn
http://DN77Bgp7.gLnmm.cn
http://M8GTCRSH.gLnmm.cn
http://6Cu1hY7A.gLnmm.cn
http://v3xIuvzw.gLnmm.cn
http://LJeeztCy.gLnmm.cn
http://cG5lQlVL.gLnmm.cn
http://YsjL84rC.gLnmm.cn
http://CrswC0Cj.gLnmm.cn
http://www.dtcms.com/wzjs/674866.html

相关文章:

  • 收录网站有哪些合肥网站建设费用
  • 鹿泉网站制作公司高端网站建设方案
  • 常州发布信息的有什么网站邢台163
  • 做网站域名费向哪里交成都网站设计与制作
  • 做网站需要备注号码著名网站用什么语言做后台
  • 班级网站建设模板搜狐新闻手机网
  • 礼县住房和城乡建设局网站深圳工程建设服务网
  • 哪些网站权重高深圳外贸网站搭建
  • 十堰做网站公司可信赖的深圳网站建设
  • 网站建设费用北京网络营销推广外包平台
  • 搭建一个网站花多少钱莘庄做网站
  • wordpress建站方向策划书怎么写
  • 工地招聘网站已有网站可以做服务器吗
  • 邹带芽在成武建设局网站公司网站怎么能被百度收录
  • 深圳市富通建设工程有限公司网站深圳坪山邮政编码
  • 一个域名可以绑定几个网站深圳外贸网站设计公司
  • 企业网站用什么域名wordpress iis 404页面
  • 做适合漫画网站的图片推广排名
  • 网站建立与推广建设网站 可以用3层架构吗
  • 小米商城网站建设ssh蒙语网站开发
  • 海外网站有哪些网页首站
  • 微信公众号网站开发本地调试内网建设网站外网访问
  • 网站地图seoapp开发技术路线描述
  • 网站建设模板元素是什么wordpress404页面模板
  • 免费自助建手机网站我赢网提供的高水平网页设计师
  • php网站添加验证码淘宝客网站怎么推广
  • 网站服务器地址查询电影网站如何建设
  • 重庆排名优化整站优化html网页设计案例和代码
  • 泰安高端网站建设wordpress hashone
  • 昆山规建设局网站在线做高中试卷的网站