news 2026/8/28 22:31:42

React:使用Tailwind CSS、Streamdown与Ant Design X

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
React:使用Tailwind CSS、Streamdown与Ant Design X

之前是把样式都交给AI写了,但是发现AI喜欢每个组件对应一个样式,这样子不方便后续维护,既然都交给AI了那么还不如直接让AI用Tailwind CSS。经过实测发现AI写Tailwind CSS的水平还是很强的。

静态页面交给AI写用Tailwind CSS用的已经很好了。

使用Ant Desgin X

@ant-design/x 是一个专注于 React 生态的先进 AI 组件库,旨在简化与人工智能集成的开发过程。

该库包括高度定制化的 AI 组件,允许开发者轻松地将对话 AI 集成到他们的应用中。除了丰富的 UI 组件,@ant-design/x 还提供了一揽子 API 解决方案,支持开发者通过令牌认证直接接入现有 AI 服务,无缝衔接与 AI 的对话和交互。无论是建立智能聊天应用、提升用户交互体验还是加快 AI 能力的集成,@ant-design/x 都是 React 开发者进入 AI 世界的理想伙伴。

官方仓库地址:https://github.com/ant-design/x

官方文档地址:https://x.ant.design/components/overview-cn

这个组件比较新直接让AI来写是不太行的,需要自己看下文档,不过文档已经提供了比较详细的示例代码了,自己看懂之后,复制粘贴一下交给AI,当做AI的上下文,写起来估计问题也不大。

目前使用Ant Desgin X做了一个简单的AI聊天界面了,自己用AI写的组件的质量跟大厂写的肯定是不能比的,既然大厂都做的这么好了,直接用大厂做好的轮子就行了。

AI对Ant Design这个组件库很熟练,使用这个组件库的Menu + React Router代替了之前写的自定义样式 + React Router。

使用Ant Design做了一个模型配置页面:

个人感觉让AI用知名组件库来写比纯让AI自己写还是好多了。

使用Streamdown

这个也是一个新东西直接让AI来写是不太行的,需要自己先看下仓库介绍。

Streamdown的简介是“react-markdown 的即插即用替代品,专为 AI 驱动的流式传输而设计。”

官方仓库地址:https://github.com/vercel/streamdown

用起来在流式传输方面确实比之前使用的react-markdown效果要好一点。

渲染代码效果:

渲染表格效果:

渲染mermaid图效果:

遇到的问题

被一个SSE传输导致前端总是没有换行的一个问题困扰最久。

之前的效果是这样的:

总是只有一行,我能发现应该是后端传过来的换行符没有被正常解析导致的,但是叫AI改了很久还是没有很好地解决,自己上网查了一下,果然发现有很多人都遇到过这个问题。

一个很不错的解决方案就是进行转义,因为SSE传输有他自己的格式:

前端在处理的时候一般喜欢将所有\n都去掉,就导致了AI回复就只有一段话。

可以在后端将AI回复中的\n转义为一个占位符,这里用的是<|newline|>,然后在前端再将这个占位符转化为\n即可。

后端处理:

前端处理:

这样AI回复就不会就只有一段内容了,AI回复中带有的换行能正常保留了。

一些学到的知识点

解构写法

这种写法:

const Sidebar: React.FC<SidebarProps> = ({ collapsed = false }) => {}

类型安全:TypeScript 确保组件接收正确的 props 类型

简洁性:解构和默认值在一行完成

可读性:直接看到组件需要哪些 props

自文档化:类型定义作为组件的"文档"

React.useEffect的使用

useEffect 是 React 中最重要的钩子之一,它让你能够在函数组件中执行副作用操作。

副作用(Side Effects):指组件渲染之外的操作,如:

数据获取(API调用)

订阅(定时器、事件监听)

手动修改DOM

localStorage操作

React.useMemo的使用

useMemo 是 React 提供的性能优化钩子,用于记忆化计算结果,避免在每次渲染时重复执行昂贵的计算。

localStorage的使用

localStorage 是 Web 浏览器提供的一种客户端存储机制,允许网站在用户浏览器中持久化存储数据。

基本概念

localStorage 是 Window 对象的属性,提供了键值对存储功能,数据没有过期时间,除非用户手动清除或通过代码删除。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 22:31:55

3步搞定大模型部署:LMDeploy全平台实战指南

3步搞定大模型部署&#xff1a;LMDeploy全平台实战指南 【免费下载链接】lmdeploy LMDeploy is a toolkit for compressing, deploying, and serving LLMs. 项目地址: https://gitcode.com/gh_mirrors/lm/lmdeploy 你在部署大语言模型时是否遇到过显存不足、模型不兼容或…

作者头像 李华
网站建设 2026/8/27 7:50:23

归并排序实战解密:从混乱到有序的魔法之旅

你是否曾经面对一堆杂乱无章的数据感到无从下手&#xff1f;是否在面试中遇到排序算法就头疼&#xff1f;别担心&#xff0c;今天我将带你用全新的视角来理解归并排序&#xff0c;你会发现这个看似复杂的算法其实就像整理房间一样简单&#xff01; 【免费下载链接】algorithm-b…

作者头像 李华
网站建设 2026/8/28 17:40:24

70、Ubuntu 和 Linux 网络资源全解析

Ubuntu 和 Linux 网络资源全解析 1. Usenet 新闻组 Usenet 新闻组提供了丰富的 Linux 相关讨论主题,涵盖了从常见问题解答到内核开发等多个方面。以下是一些主要的新闻组: | 新闻组名称 | 描述 | | — | — | | comp.os.linux.answers | 发布新的 Linux 常见问题解答和其…

作者头像 李华
网站建设 2026/8/28 19:51:20

29、Ubuntu系统备份与网络连接实用指南

Ubuntu系统备份与网络连接实用指南 系统救援 在使用Ubuntu系统的过程中,难免会遇到系统无法启动的情况,这时就需要进行系统救援。系统无法启动Linux以恢复文件的问题,通常与引导加载程序或分区表有关,但也可能是关键系统文件被意外删除或损坏。 如果平时有正确地进行备份…

作者头像 李华
网站建设 2026/8/28 5:10:19

5大亮点解密WanVideo:AI视频生成从此告别技术门槛

5大亮点解密WanVideo&#xff1a;AI视频生成从此告别技术门槛 【免费下载链接】WanVideo_comfy 项目地址: https://ai.gitcode.com/hf_mirrors/Kijai/WanVideo_comfy 在人工智能视频创作领域&#xff0c;WanVideo项目以其创新的多模态融合技术&#xff0c;为普通用户打…

作者头像 李华
网站建设 2026/8/28 10:24:47

AI绘画终极指南:5分钟零代码打造专业级创作工作流

AI绘画终极指南&#xff1a;5分钟零代码打造专业级创作工作流 【免费下载链接】langflow ⛓️ Langflow is a visual framework for building multi-agent and RAG applications. Its open-source, Python-powered, fully customizable, model and vector store agnostic. 项…

作者头像 李华