开发人员必知的 17 个 React 项目 👩💻🔥
由于开发者社区的存在,React 生态系统非常庞大。
数以千计的包、库和框架使其如此强大。
今天,我们将探索 17 个对开发者非常有用的 React 项目。我还介绍了三个很棒的 UI 组件库。
让我们开始吧。
1. Tolgee——基于网络的本地化平台。
Tolgee 是 Crowdin、Phrase 和 Lokalise 的开源替代品。
您可以使用 tolgee 翻译文本、实时编辑文本并与您的应用同步来管理翻译。
假设您的应用中有一个按钮,上面写着Submit
。您无需手动为Submit
不同语言创建翻译(例如将西班牙语翻译为“Enviar”),只需将 Tolgee 添加到您的应用中即可。
您无需手动编辑包含大量本地化数据的大型 JSON,而是可以直接在应用程序中按住 alt 键并单击按钮并当场更改其翻译,而无需深入研究代码。
使用此命令开始使用 Tolgee React SDK。
npm i @tolgee/react
这就是您可以使用它的方法。
// wrap your code with the tolgee provider
import { Tolgee, DevTools, TolgeeProvider, FormatSimple } from "@tolgee/react";
const tolgee = Tolgee()
.use(DevTools())
.use(FormatSimple())
.init({
language: 'en',
apiUrl: process.env.VITE_APP_TOLGEE_API_URL,
apiKey: process.env.VITE_APP_TOLGEE_API_KEY,
});
...
<TolgeeProvider
tolgee={tolgee}
fallback="Loading..." // loading fallback
>
<App />
</TolgeeProvider>
// Use the T component to translate your texts
import { T } from "@tolgee/react";
export const Component = () => {
return (
<h1>
<T keyName="translate_me">Translate me!</T>
</h1>
)
}
使用 Tolgee React SDK检查此示例应用程序。
您可以阅读有关 React 集成的文档。它支持所有其他框架,例如 Angular、Vue、Svelte、Vanilla JS 和 Nextjs。
有很多功能,例如:
-→ In-context Translation
:使用 Tolgee i18n 工具直接在应用程序中翻译它们。
-→ One-click screenshots
:单击一次即可从您的应用程序中截取屏幕截图,其中突出显示要翻译的短语。
Tolgee 在 GitHub 上拥有 1.7k 颗星,并且增长势头强劲。
2. Mantine Hooks - 用于状态和 UI 管理的反应钩子。
你有多少次因为从零开始写 hooks 而卡住了?
好吧,有了 mantine hooks,我以后再也不用这么麻烦了!
编写更多代码效率不高,因为您最终需要维护它,所以最好使用这些生产级钩子来使您的工作变得更加轻松。
相信我,获得 60 多个钩子是一件大事,因为他们有一种简单的方法可以让你看到每个钩子的演示,并且有易于遵循的文档。
使用以下 npm 命令开始。
npm install @mantine/hooks
这就是您可以将其用作useScrollIntoView
螳螂钩的一部分的方法。
import { useScrollIntoView } from '@mantine/hooks';
import { Button, Text, Group, Box } from '@mantine/core';
function Demo() {
const { scrollIntoView, targetRef } = useScrollIntoView<HTMLDivElement>({
offset: 60,
});
return (
<Group justify="center">
<Button
onClick={() =>
scrollIntoView({
alignment: 'center',
})
}
>
Scroll to target
</Button>
<Box
style={{
width: '100%',
height: '50vh',
backgroundColor: 'var(--mantine-color-blue-light)',
}}
/>
<Text ref={targetRef}>Hello there</Text>
</Group>
);
}
它们几乎囊括了所有功能,从本地存储到分页,再到滚动视图、交叉视图,甚至还有一些非常酷炫的实用工具,比如吸管和文本选择。这真是太实用了!
您可以阅读文档。
他们在 GitHub 上有超过 26.4k+ 个 star。这不仅仅是因为钩子,Mantine 本身就是一个 React 组件库。
3. Aceternity UI - 为您的网站复制粘贴组件。
在 Shadcn 在开发者社区获得好评后,我们看到了大量基于组件的新库。说实话,我们不需要 100 个新库,但有些库确实脱颖而出。
Aceternity UI 就是其中之一,您可以复制粘贴最流行的组件并在您的网站中使用它们,而不必担心样式和动画。
您可以探索所有组件。
我会讨论我最爱的四款。它们都是动画的,但你可以根据它们的外观来理解。
✅ Floating dock
:用作导航,当我将鼠标悬停在任何图标上时,它都会执行清晰的动画。
✅ Lamp Section Header
:适用于分隔各个部分,并且具有基于滚动的平滑扩展过渡。
✅ GitHub Globe
:地球仪可以拖动。如果你感兴趣的话,这个功能最初是在 GitHub 网站上使用的。
✅ Animated Tooltip
:有助于展现权威和信任。你可以用它来向与你共事的人或组织展示。
您将找到代码、安装说明、CLI 指南,甚至代码中使用的道具的描述。
我非常喜欢的一点是,很多组件都保持了简洁,没有花哨的、过度的东西。你可以阅读文档。
这是列表中唯一一个非开源但绝对值得一看的项目。
4. xyflow——使用 React 构建基于节点的 UI。
XYFlow 是一个强大的开源库,用于使用 React 或 Svelte 构建基于节点的 UI。它是一个 Mono 仓库,提供React Flow和Svelte Flow 两个版本。让我们进一步了解 React Flow 的功能。
您可以观看此视频,在 60 秒内了解 React Flow。
部分功能在专业模式下可用,但免费套餐中的功能足以构建高度交互的流程。React Flow 使用 TypeScript 编写,并使用 Cypress 进行测试。
使用以下 npm 命令开始。
npm install reactflow
如下示例创建两个节点Hello
& World
,并通过一条边连接。节点已预定义初始位置以防止重叠,并且我们还应用了样式以确保有足够的空间来渲染图形。
import ReactFlow, { Controls, Background } from 'reactflow';
import 'reactflow/dist/style.css';
const edges = [{ id: '1-2', source: '1', target: '2' }];
const nodes = [
{
id: '1',
data: { label: 'Hello' },
position: { x: 0, y: 0 },
type: 'input',
},
{
id: '2',
data: { label: 'World' },
position: { x: 100, y: 100 },
},
];
function Flow() {
return (
<div style={{ height: '100%' }}>
<ReactFlow nodes={nodes} edges={edges}>
<Background />
<Controls />
</ReactFlow>
</div>
);
}
export default Flow;
它看起来就是这样。你还可以添加标签、更改类型并使其具有交互性。
您可以阅读文档并查看Create React App、Next.js 和 Remix 的示例 React Flow 应用程序。
React Flow 附带了几个额外的插件组件,可以帮助您使用 Background、Minimap、Controls、Panel、NodeToolbar 和 NodeResizer 组件制作更高级的应用程序。
例如,你可能注意到许多网站的背景中都存在圆点。你可以简单地使用 React Flow 中的 Background 组件来实现该模式。
import { Background } from 'reactflow';
<Background color="#ccc" variant={'dots'} /> // this will be under React Flow component. Just an example.
如果您正在寻找一篇快速文章,我建议您查看Webkid 的《React Flow - 一个用于渲染交互式图形的库》 。
它在 GitHub 上拥有 25k+ 颗星。
5. cmdk – 快速、无样式的命令菜单 React 组件。
这是一个 React 命令菜单组件,也可以用作可访问的组合框。您可以渲染项目,它会自动过滤和排序。⌘K(项目名称)支持完全可组合的 API,因此您可以将项目包装在其他组件中,甚至可以将其包装为静态 JSX。
使用以下 npm 命令开始。
pnpm install cmdk
这就是您通常的使用方法。
import { Command } from 'cmdk'
const CommandMenu = () => {
return (
<Command label="Command Menu">
<Command.Input />
<Command.List>
<Command.Empty>No results found.</Command.Empty>
<Command.Group heading="Letters">
<Command.Item>a</Command.Item>
<Command.Item>b</Command.Item>
<Command.Separator />
<Command.Item>c</Command.Item>
</Command.Group>
<Command.Item>Apple</Command.Item>
</Command.List>
</Command>
)
}
您可以阅读有关零件和样式的文档。
您可以了解如何根据您想要的样式进行更改。
您应该看到所有示例和常见问题解答的列表,其中回答了很多重要的问题。
它在 GitHub 上拥有近 9.7k 个星。
6. Magic UI——设计工程师的UI库。
Magic UI 是另一个基于组件的库,您可以将组件复制粘贴到应用程序中。它更专注于创建落地页和面向用户的营销材料。
您可以查看所有组件。让我们看看我真正喜欢的前 4 个:
✅ Bento grid
:您可以使用此布局来展示功能。它具有流畅的动画。
✅ Interactive icon cloud
:一个带有图标的交互式 3D 标签云组件。可以用来展示你使用的技术栈或工具。
✅ Animated grid pattern
:出现和消失的网格块以展示流畅的动画。
✅ Particles
:一种为您的网站添加一些视觉效果的有趣方式。
它们有很多有用的组件,因为每个人根据自己的需要都有不同的偏好。
除此之外,他们还提供Portfolio等示例模板。查看实时预览。
Magic UI 在 GitHub 上有 10.2k 个星,这表明它们有多受欢迎。
7. React Content Loader——由 SVG 驱动的组件,可轻松创建骨架加载。
我经常访问网站,但页面空空如也。作为一名开发人员,我知道它正在加载,但并非所有人都能意识到这一点。
这就是为什么骨架加载器很重要,它们向用户发出正在发生某事的视觉信号,特别是对于加载状态。
该项目为您提供了一个由 SVG 驱动的组件,可轻松创建占位符加载(如 Facebook 的卡片加载)。
骨架图通常用于在加载过程中提示用户内容仍在加载。每个开发者都应该使用这个便捷的项目来提升应用的整体用户体验。
有几件事让这个变得更好!
✅ 轻量级——网络版本小于 2kB 且 0 个依赖项。
✅ 随意更改颜色、速度、尺寸甚至 RTL。
✅ 它支持 React Native,具有通用 API 和强大的功能。
使用以下 npm 命令开始。
npm i react-content-loader --save
您可以这样使用它。
import React from "react"
import ContentLoader from "react-content-loader"
const MyLoader = (props) => (
<ContentLoader
speed={2}
width={400}
height={160}
viewBox="0 0 400 160"
backgroundColor="#f3f3f3"
foregroundColor="#ecebeb"
{...props}
>
<rect x="48" y="8" rx="3" ry="3" width="88" height="6" />
<rect x="48" y="26" rx="3" ry="3" width="52" height="6" />
<rect x="0" y="56" rx="3" ry="3" width="410" height="6" />
<rect x="0" y="72" rx="3" ry="3" width="380" height="6" />
<rect x="0" y="88" rx="3" ry="3" width="178" height="6" />
<circle cx="20" cy="20" r="20" />
</ContentLoader>
)
export default MyLoader
其输出如下所示。
您甚至可以拖动单个骨架或使用为 Facebook 和 Instagram 等不同社交媒体预定义的骨架。
该项目在 GitHub 上拥有 13.7k+ 颗星,并被 GitHub 上 50k+ 的开发人员使用。
8. Tremor——用于构建图表和仪表板的 React 组件。
Tremor 提供了 20 多个开源 React 组件,用于构建基于 Tailwind CSS 的图表和仪表板,使数据可视化再次变得简单。
使用以下 npm 命令开始。
npm i @tremor/react
这就是您可以使用 Tremor 快速构建事物的方法。
import { Card, ProgressBar } from '@tremor/react';
export default function Example() {
return (
<Card className="mx-auto max-w-md">
<h4 className="text-tremor-default text-tremor-content dark:text-dark-tremor-content">
Sales
</h4>
<p className="text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong">
$71,465
</p>
<p className="mt-4 flex items-center justify-between text-tremor-default text-tremor-content dark:text-dark-tremor-content">
<span>32% of annual target</span>
<span>$225,000</span>
</p>
<ProgressBar value={32} className="mt-2" />
</Card>
);
}
这将根据上述代码生成。
你可以阅读文档。其中,他们在底层使用了 remix 图标。
从我见过的各种组件来看,这是一个很好的起点。相信我!
Tremor 还提供了简洁的 UI 工具包。太酷了!
如果您正在寻找替代方案,您可以查看基于 recharts 的Shadcn 图表。
Tremor 在 GitHub 上拥有 16k+ 颗星。
9. Victory – 用于构建交互式数据可视化的 React 组件。
如今,许多开发者都在处理大量数据(主要使用 API)。一种能够轻松可视化这些数据的方法是一个很棒的概念,可以让你的应用更上一层楼。
Victory 是一个可组合 React 组件的生态系统,用于构建交互式数据可视化。
使用以下 npm 命令开始。
npm i --save victory
这就是您可以使用它的方法。
<VictoryChart
domainPadding={{ x: 20 }}
>
<VictoryHistogram
style={{
data: { fill: "#c43a31" }
}}
data={sampleHistogramDateData}
bins={[
new Date(2020, 1, 1),
new Date(2020, 4, 1),
new Date(2020, 8, 1),
new Date(2020, 11, 1)
]}
/>
</VictoryChart>
渲染效果如下。他们还提供动画和主题选项,总体来说挺实用的。
您可以阅读文档并按照教程开始使用。他们提供了大约 15 种不同的图表选项,并且每个选项下都有丰富的自定义功能,简直令人难以置信!
它也适用于React Native(文档)。如果您需要代码和解释方面的常见问题的解决方案,例如样式、注释(标签)、轴的处理,请查看常见问题解答。
Victory 在 GitHub 上拥有 11k 颗星。
10. React Diagrams——一个用 React 编写的超级简单、实用的图表库。
受 Blender、Labview 和 Unreal 引擎启发的流程和过程导向图表库。
使用以下 npm 命令开始运行。然后,您将看到一个 dist 文件夹,其中包含所有已压缩且可用于生产环境的代码。
yarn add @projectstorm/react-diagrams
让我们看看如何使用它。
import createEngine, {
DefaultLinkModel,
DefaultNodeModel,
DiagramModel
} from '@projectstorm/react-diagrams';
import {
CanvasWidget
} from '@projectstorm/react-canvas-core';
我们需要调用createEngine
它将为我们引导一个包含所有默认设置的 DiagramEngine。
// create an instance of the engine with all the defaults
const engine = createEngine();
// creating two nodes
// node 1
const node1 = new DefaultNodeModel({
name: 'Node 1',
color: 'rgb(0,192,255)',
});
node1.setPosition(100, 100);
let port1 = node1.addOutPort('Out');
// node 2
const node2 = new DefaultNodeModel({
name: 'Node 1',
color: 'rgb(0,192,255)',
});
node2.setPosition(100, 100);
let port2 = node2.addOutPort('Out');
//we link the two ports of both of the nodes
// also add a label to the link
const link = port1.link<DefaultLinkModel>(port2);
link.addLabel('Hello World!');
我们需要创建一个 DiagramModel 来包含所有内容,向其中添加所有元素,然后将其添加到引擎。
const model = new DiagramModel();
model.addAll(node1, node2, link);
engine.setModel(model);
// we just need to render in react
<CanvasWidget engine={engine} />
这个库的灵感来自 Joint JS(一个很棒的库)以及对丰富的 HTML 节点、LabView、Blender Composite 子系统的需求。
您还可以在文档中找到有关如何制作自定义节点和自定义端口的详细信息。
它在 GitHub 上有 8.7k 个星。
11. UI 布局- 您的网站所需的设计。
这是除了 Acernity UI 和 Magic UI 之外我讨论的第三个基于组件的库。
这也是一个可重复使用组件的集合,每个组件都包含一堆不同风格的示例。
您可以看到所有组件的列表。让我们来介绍一下我真正喜欢的前 5 个组件。
✅ Video Masking
:创意视频蒙版,形状多样,可通过自定义剪裁为图像添加独特的艺术效果。看起来棒极了!
✅ Blur Vignette
:Apple Vision Pro 类似模糊效果,可在图像、视频和卡片中使用。背景是正在播放的视频。
✅ Noise effect
:一种噪音效果组件,可为您的网站添加噪音覆盖,并具有可调节的不透明度以便控制。
✅ Spotlight Cards
:鼠标敏感的聚光灯效果,当您移动光标时,它会突出显示 div 或部分的边框。
✅ Masonary Grid
:一种自适应砌体网格组件,以动态、可变高度的布局排列项目,类似于 Unsplash。
如果您需要自定义 Talwind UI 块的结构(对从头开始编码感兴趣),那么我建议您查看flowrift和flash UI。
UI Layout 在 GitHub 上有 356 个星,对于专注于界面设计的人来说绝对很有价值。
12. React Cosmos——用于独立开发和测试 UI 组件的沙盒。
React Cosmos 是一款强大的 UI 组件独立开发和测试工具。它允许你一次专注于一个组件,从而实现更快的迭代速度和更高质量的组件。
你可以使用这个 npm 命令为 nextjs 项目安装它。你也可以将它与 Vite、React Native 甚至自定义 bundler一起使用。
npm i -D react-cosmos react-cosmos-next
它具有使其成为标准的所有功能。
他们在 GitHub 上有 8.3k 个星。
13. React Joyride——在您的应用中创建导游服务。
导览是向新用户展示应用或讲解新功能的绝佳方式。它能够提升用户体验,并营造个性化体验。
使用以下 npm 命令开始。
npm i react-joyride
您可以这样使用它。
import React, { useState } from 'react';
import Joyride from 'react-joyride';
/*
* If your steps are not dynamic you can use a simple array.
* Otherwise you can set it as a state inside your component.
*/
const steps = [
{
target: '.my-first-step',
content: 'This is my awesome feature!',
},
{
target: '.my-other-step',
content: 'This another awesome feature!',
},
];
export default function App() {
// If you want to delay the tour initialization you can use the `run` prop
return (
<div>
<Joyride steps={steps} />
...
</div>
);
}
它们还提供了组件列表和自定义默认用户界面的简便方法。
您可以阅读文档并查看演示。您还可以使用实时codesandbox进行操作。
他们在 GitHub 上拥有 6.8k+ 颗星,并且 npm 包每周的下载量超过 25 万次。
14. React Spring——基于弹簧物理的 React 动画库。
如果您喜欢 react-motion 但感觉过渡不流畅,那是因为它只使用 React 渲染。
如果您喜欢 Popmotion 但感觉自己能做的事情有限,那是因为它完全跳过了 React 渲染。
react-spring
提供两种选择,尝试一下!
使用以下 npm 命令开始。
npm i @react-spring/web
这就是您可以导入高阶组件来包装动画的方法。
import { animated } from '@react-spring/web'
// use it.
export default function MyComponent() {
return (
<animated.div
style={{
width: 80,
height: 80,
background: '#ff6d6d',
borderRadius: 8,
}}
/>
)
}
我决定尝试一下 React Spring,是因为下面的 codesandbox。React Spring 能做这么多事情,真是令人惊叹。
您可以阅读文档。
他们还提供了很多您可以学习的例子。
它提供了大量的选项,例如useScroll
,它允许您创建滚动链接动画。
例如,这个 codesandbox 讲述了 的用法useScroll
。
React Spring 在 GitHub 上大约有 28.1k 个星。
15. BlockNote——基于块的富文本编辑器(Notion 风格)并且可扩展。
人们常说,除非你正在学习新的东西,否则不要重新发明轮子。
Blocknote 是一款开源的 React 富文本编辑器。它能够轻松地为您的应用增添现代化的文本编辑体验。它基于 Prosemirror 和 Tiptap 构建。
它们具有许多如下所示的特点。
您可以轻松自定义内置 UI 组件,或创建自定义区块、内联内容和样式。如果您想更进一步,可以使用额外的 Prosemirror 或 TipTap 插件来扩展核心编辑器。
其他库功能强大,但学习难度较高,需要自定义编辑器的每一个细节。而 BlockNote 则以极简的设置提供了绝佳的体验,包括现成的动画 UI。
使用以下 npm 命令开始。
npm install @blocknote/core @blocknote/react
你可以这样使用这个钩子。通过这个useCreateBlockNote
钩子,我们可以创建一个新的编辑器实例,然后使用theBlockNoteView
组件来渲染它。
@blocknote/react/style.css
也被导入以添加编辑器的默认样式和 BlockNote 导出的 Inter 字体(可选)。
import "@blocknote/core/fonts/inter.css";
import { BlockNoteView, useCreateBlockNote } from "@blocknote/react";
import "@blocknote/react/style.css";
export default function App() {
// Creates a new editor instance.
const editor = useCreateBlockNote();
// Renders the editor instance using a React component.
return <BlockNoteView editor={editor} />;
}
您应该尝试一下,特别是因为它包含各种功能,如“斜线”菜单、流畅的动画以及创建实时协作应用程序的潜力。
他们还提供了20 多个带有预览和代码的示例。
Blocknote 在 GitHub 上有 6.5k 颗星。
16. Remotion——使用 React 制作视频。
使用 React 创建真正的 MP4 视频,并使用服务器端渲染和参数化扩展您的视频制作。
如果您在过去 2 年内见过 GitHub 包装,那么它是由 Remotion 团队制作的。
使用以下命令开始。
npx create-video@latest
它为您提供一个帧编号和一个空白画布,您可以在其中使用 React 渲染任何您想要的内容。
这是一个将当前帧呈现为文本的示例 React 组件。
import { AbsoluteFill, useCurrentFrame } from "remotion";
export const MyComposition = () => {
const frame = useCurrentFrame();
return (
<AbsoluteFill
style={{
justifyContent: "center",
alignItems: "center",
fontSize: 100,
backgroundColor: "white",
}}
>
The current frame is {frame}.
</AbsoluteFill>
);
};
您可以阅读包括基础知识在内的文档。
查看资源列表,包括模板、SAAS 入门套件、效果、示例甚至完整项目。
另外,检查产品和活动期间制作的演示视频。
例如,这是用 Remotion 创建的。看这个!
您可以观看Fireship 的 Remotion教程演示,他们的视频真是太棒了 :)
它们在 GitHub 上拥有 20.5k 颗星,并被 2000+ 名开发人员使用。
17. MDX——组件时代的Markdown。
MDX 允许您在 Markdown 内容中使用 JSX。您可以导入组件(例如交互式图表或警报),并将其嵌入到您的内容中。
简单来说,MDX 可以解释为一种结合了 markdown 和 JSX 的格式,如下所示:
# Hello, world!
<div className="note">
> Some notable things in a block quote!
</div>
标题和区块引用使用 Markdown 格式,而那些类似 HTML 的标签则使用 JSX 格式。MDX 支持花括号内的 JavaScript 表达式,也支持 import/export 语句。查看所有组件列表。
您可以阅读文档,其中解释了 MDX 的核心概念。此外,如果您对现场演示感兴趣,也可以查看Playground 。
MDX 在 GitHub 上拥有 17k 颗星,并被 GitHub 上的 390k+ 名开发人员使用。
这些反应库可以改善您作为开发人员的游戏。
有些技巧可以节省数百小时,而列表中的其他技巧则可以帮助您提升用户体验。目前就这些。
祝您拥有美好的一天!下次再见。
关注 Tolgee 以获取更多类似内容。
文章来源:https://dev.to/tolgee_i18n/17-must-know-react-projects-for-developers-28a2