1、React Hot Toast
地址:https://react-hot-toast.com/
它是一个易于使用、可访问且完全可定制,它文件小,因此,在应用程序中占有一席之地。
import toast, { Toaster } from "react-hot-toast";const App = () => {return (<><Toaster/><button onClick={() => toast.success('Yay!')}>Click me!</button></>)};
2、Jotai
地址:https://jotai.pmnd.rs/
这个令人难以置信的软件也很小,只有 6kb,几乎不会注意到它的存在!
import { atom, useAtom } from "jotai";const counterAtom = atom(0);const App = () => {const [counter, setCounter] = useAtom(counterAtom);return (<><p>{counter}</p></>);}
使用 Jotai,可以创建原子的微小状态容器。 然后可以在整个应用程序的其余部分读取和设置这些原子。
由于在整个应用程序中使用相同的原子,因此,所有内容都始终是最新的。 不再为过时的状态而苦苦挣扎!
3、Framer Motion
地址:https://www.framer.com/motion/
这个非常不错的动画库。 它能创建运行流畅的动画。 甚至不需要 CSS 来编写它们!
无论动画多么复杂,它也能够毫不费力地运行它! 凭借其简单的 API 和出色的文档,可以立即开始运行。
import { motion } from "framer-motion"export const MyComponent = () => (<motion.divanimate={{ scale: 2 }}transition={{ duration: 0.5 }}/>)
甚至可以为组件的进入和退出设置动画。
import { motion, AnimatePresence } from "framer-motion"export const MyComponent = ({ isVisible }) => (<AnimatePresence>{isVisible && (<motion.divinitial={{ opacity: 0 }}animate={{ opacity: 1 }}exit={{ opacity: 0 }}/>)}</AnimatePresence>)
4、React-Hook-Form
地址:https://react-hook-form.com/
当必须处理和验证用户输入时,这将节省大量时间。React-hook-form 直接嵌入到模式验证库中,并随时随地验证用户的输入。 确保只有在所有正确数据都存在时,才能提交表单的完美方式!
import React, { useState } from "react";import { useForm } from "react-hook-form";import Headers from "./Header";export default function App() {const { register, handleSubmit } = useForm();const [result, setResult] = useState("");const onSubmit = (data) => setResult(JSON.stringify(data));return (<form onSubmit={handleSubmit(onSubmit)}><Headers /><input {...register("firstName")} placeholder="First name" /><input {...register("lastName")} placeholder="Last name" /><select {...register("category")}><option value="">Select...</option><option value="A">Category A</option><option value="B">Category B</option></select><p>{result}</p><input type="submit" /></form>);}
React-hook-form 的主要目标是减少需要编写的代码量以使其工作。 老实说,谁不梦想编写更少的代码?
5、Chakra-UI
地址:https://chakra-ui.com/
Chakra 是一个简单而现代的组件套件,可在几分钟内创建一个前端! 他们的预制组件是完全可访问的,看起来非常干净。
import * as React from "react";import { Box, Image, Flex, Badge, Text } from "@chakra-ui/react";import { MdStar } from "react-icons/md";export default function Example() {return (<Box p="5" maxW="320px" borderWidth="1px"><Image borderRadius="md" src="https://bit.ly/2k1H1t6" /><Flex align="baseline" mt={2}><Badge colorScheme="pink">Plus</Badge><Textml={2}textTransform="uppercase"fontSize="sm"fontWeight="bold"color="pink.800">Verified • Cape Town</Text></Flex><Text mt={2} fontSize="xl" fontWeight="semibold" lineHeight="short">Modern, Chic Penthouse with Mountain, City & Sea Views</Text><Text mt={2}>$119/night</Text><Flex mt={2} align="center"><Box as={MdStar} color="orange.400" /><Text ml={1} fontSize="sm"><b>4.84</b> (190)</Text></Flex></Box>);}
他们直观的 API 还可以轻松添加自己的样式并真正创建独特的作品! 由于不断重复使用 Chakra 提供的相同组件,UI 将在整个应用程序中看起来连贯和干净!
