React

1、React Hot Toast

地址:https://react-hot-toast.com/
它是一个易于使用、可访问且完全可定制,它文件小,因此,在应用程序中占有一席之地。

  1. import toast, { Toaster } from "react-hot-toast";
  2. const App = () => {
  3. return (
  4. <>
  5. <Toaster/>
  6. <button onClick={() => toast.success('Yay!')}>Click me!</button>
  7. </>
  8. )
  9. };

2、Jotai

地址:https://jotai.pmnd.rs/
这个令人难以置信的软件也很小,只有 6kb,几乎不会注意到它的存在!

  1. import { atom, useAtom } from "jotai";
  2. const counterAtom = atom(0);
  3. const App = () => {
  4. const [counter, setCounter] = useAtom(counterAtom);
  5. return (
  6. <>
  7. <p>{counter}</p>
  8. </>
  9. );
  10. }

使用 Jotai,可以创建原子的微小状态容器。 然后可以在整个应用程序的其余部分读取和设置这些原子。
由于在整个应用程序中使用相同的原子,因此,所有内容都始终是最新的。 不再为过时的状态而苦苦挣扎!

3、Framer Motion

地址:https://www.framer.com/motion/
这个非常不错的动画库。 它能创建运行流畅的动画。 甚至不需要 CSS 来编写它们!
无论动画多么复杂,它也能够毫不费力地运行它! 凭借其简单的 API 和出色的文档,可以立即开始运行。

  1. import { motion } from "framer-motion"
  2. export const MyComponent = () => (
  3. <motion.div
  4. animate={{ scale: 2 }}
  5. transition={{ duration: 0.5 }}
  6. />
  7. )

甚至可以为组件的进入和退出设置动画。

  1. import { motion, AnimatePresence } from "framer-motion"
  2. export const MyComponent = ({ isVisible }) => (
  3. <AnimatePresence>
  4. {isVisible && (
  5. <motion.div
  6. initial={{ opacity: 0 }}
  7. animate={{ opacity: 1 }}
  8. exit={{ opacity: 0 }}
  9. />
  10. )}
  11. </AnimatePresence>
  12. )

4、React-Hook-Form

地址:https://react-hook-form.com/
当必须处理和验证用户输入时,这将节省大量时间。React-hook-form 直接嵌入到模式验证库中,并随时随地验证用户的输入。 确保只有在所有正确数据都存在时,才能提交表单的完美方式!

  1. import React, { useState } from "react";
  2. import { useForm } from "react-hook-form";
  3. import Headers from "./Header";
  4. export default function App() {
  5. const { register, handleSubmit } = useForm();
  6. const [result, setResult] = useState("");
  7. const onSubmit = (data) => setResult(JSON.stringify(data));
  8. return (
  9. <form onSubmit={handleSubmit(onSubmit)}>
  10. <Headers />
  11. <input {...register("firstName")} placeholder="First name" />
  12. <input {...register("lastName")} placeholder="Last name" />
  13. <select {...register("category")}>
  14. <option value="">Select...</option>
  15. <option value="A">Category A</option>
  16. <option value="B">Category B</option>
  17. </select>
  18. <p>{result}</p>
  19. <input type="submit" />
  20. </form>
  21. );
  22. }

React-hook-form 的主要目标是减少需要编写的代码量以使其工作。 老实说,谁不梦想编写更少的代码?

5、Chakra-UI

地址:https://chakra-ui.com/
Chakra 是一个简单而现代的组件套件,可在几分钟内创建一个前端! 他们的预制组件是完全可访问的,看起来非常干净。

  1. import * as React from "react";
  2. import { Box, Image, Flex, Badge, Text } from "@chakra-ui/react";
  3. import { MdStar } from "react-icons/md";
  4. export default function Example() {
  5. return (
  6. <Box p="5" maxW="320px" borderWidth="1px">
  7. <Image borderRadius="md" src="https://bit.ly/2k1H1t6" />
  8. <Flex align="baseline" mt={2}>
  9. <Badge colorScheme="pink">Plus</Badge>
  10. <Text
  11. ml={2}
  12. textTransform="uppercase"
  13. fontSize="sm"
  14. fontWeight="bold"
  15. color="pink.800"
  16. >
  17. Verified &bull; Cape Town
  18. </Text>
  19. </Flex>
  20. <Text mt={2} fontSize="xl" fontWeight="semibold" lineHeight="short">
  21. Modern, Chic Penthouse with Mountain, City & Sea Views
  22. </Text>
  23. <Text mt={2}>$119/night</Text>
  24. <Flex mt={2} align="center">
  25. <Box as={MdStar} color="orange.400" />
  26. <Text ml={1} fontSize="sm">
  27. <b>4.84</b> (190)
  28. </Text>
  29. </Flex>
  30. </Box>
  31. );
  32. }

他们直观的 API 还可以轻松添加自己的样式并真正创建独特的作品! 由于不断重复使用 Chakra 提供的相同组件,UI 将在整个应用程序中看起来连贯和干净!