日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
推薦十一個React Hook庫

 Hooks來了,并在暴風雨中占領了React社區(qū)。自最初發(fā)布以來已經(jīng)有一段時間了,這意味著有很多支持庫。在搜索與React相關的內(nèi)容時,很難不說“ hook”。如果你們還沒有使用它的話,應該盡快將它們加入代碼庫。它們將使您的編碼生活變得更加輕松和愉快。

創(chuàng)新互聯(lián)建站專注于企業(yè)成都營銷網(wǎng)站建設、網(wǎng)站重做改版、白塔網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5建站、商城網(wǎng)站建設、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為白塔等各大城市提供網(wǎng)站開發(fā)制作服務。

在React開發(fā)中,保持干凈的代碼風格,可讀性,可維護性,更少的代碼行以及可重用性至關重要。本篇文章將向您介紹應立即開始使用的十一個React Hook庫。不用再拖延了,讓我們開始吧。

1.use-http
use-http是一個非常有用的軟件包,可用來替代Fetch API。以高質(zhì)量編寫和維護。它使您的編碼更簡單易懂,更精確地講是數(shù)據(jù)處理部分。hook本身使用TypeScript,甚至支持SSR和GraphQL。它返回響應,加載,錯誤數(shù)據(jù)和不同的請求方法,例如Get,Post,Put,Patch和Delete。

它提供的主要功能是:

  • 請求/響應攔截器
  • 支持React Native
  • 卸載組件時中止/取消掛起的http請求
  • 緩存

CodeSandbox示例和Youtube視頻以及GitHub自述文件都對此進行了很好的記錄。

官網(wǎng)地址:https://use-http.com/#/

使用案例

 
 
 
 
  1. import useFetch from "use-http" 
  2.  
  3. const Example = () => { 
  4.   const [todos, setTodos] = useState([]) 
  5.   const { get, post, response, loading, error } = useFetch("https://example.com") 
  6.  
  7.   useEffect(() => { get("/todos") }, []) 
  8.  
  9.   const addTodo = async () => { 
  10.       await post("/todos", { title: "example todo" }); 
  11.       if (response.ok) setTodos([...todos, newTodo]) 
  12.   } 
  13.  
  14.   return ( 
  15.     <> 
  16.       Add Todo 
  17.       {error && 'Error!'} 
  18.       {loading && 'Loading...'} 
  19.       {todos.map(todo => ( 
  20.         {todo.title} 
  21.       )} 
  22.      
  23.   ); 
  24. }; 

2.useMedia
您是否需要一種跟蹤CSS媒體查詢的方法?該useMedia hook提供一個簡單的方法解決問題。這是一個準確跟蹤React sensor hook。媒體查詢以及任何應用程序或網(wǎng)站的響應能力都非常重要。

它提供了支持TypeScript編寫。該軟件包具有定義明確的文檔,其中解釋了掛鉤的用法以及測試方法。

地址:https://github.com/streamich/use-media

使用案例:

 
 
 
 
  1. import useMedia from 'use-media'; 
  2.  
  3. const Example = () => { 
  4.   const isWide = useMedia({minWidth: '1000px'}); 
  5.  
  6.   return ( 
  7.      
  8.       Screen is wide: {isWide ? "WideScreen" : "NarrowScreen"} 
  9.      
  10.   ); 
  11. }; 

3.Constate
Constate是一個hook package,可將本地狀態(tài)提升到React Context。這意味著可以以最小的努力輕松地將任何組件的任何狀態(tài)提升到上下文。如果您想在多個位置使用相同的狀態(tài),或者為多個組件提供相同的狀態(tài),這很有用。該名稱來自合并上下文和狀態(tài)的文字游戲。使用Typescript寫的,體積很小。雖然該文檔不是很詳細,但是可以完成工作。

地址:https://github.com/diegohaz/constate

使用案例:

 
 
 
 
  1. import React, { useState } from "react"; 
  2. import constate from "constate"; 
  3.  
  4. // custom hook 
  5. function useCounter() { 
  6.   const [count, setCount] = useState(0); 
  7.   const increment = () => setCount(prevCount => prevCount + 1); 
  8.   return { count, increment }; 
  9.  
  10. // hook passed in constate 
  11. const [CounterProvider, useCounterContext] = constate(useCounter); 
  12.  
  13. function Button() { 
  14.   // use the context 
  15.   const { increment } = useCounterContext(); 
  16.   return +; 
  17.  
  18. function Count() { 
  19.   // use the context 
  20.   const { count } = useCounterContext(); 
  21.   return {count}
  22.  
  23. function App() { 
  24.   // wrap the component with provider 
  25.   return ( 
  26.      
  27.        
  28.        
  29.      
  30.   ); 

4.Redux hooks
Redux是許多(即使不是全部)React開發(fā)人員的知名工具。在整個應用程序中,它用作全局狀態(tài)管理器。在React的最初版本發(fā)布幾個月后,它就隨鉤而上了。它通過現(xiàn)有connect()方法提供了HOC(高階組件)模式的替代方法。

提供的最著名的hooks是:

  • useSelector
  • useDispatch
  • useStore

該文檔非常好,有點復雜,但是它將為您提供開始使用它們所需的任何信息。

地址:https://github.com/reduxjs/redux

使用案例:

 
 
 
 
  1. import {useSelector, useDispatch} from "react-redux"; 
  2. import React from "react"; 
  3. import * as actions from "./actions"; 
  4.  
  5. const Example = () => { 
  6. const dispatch = useDispatch() 
  7. const counter = useSelector(state => state.counter) 
  8.  
  9. return ( 
  10.  
  11.     
  12.      {counter.value} 
  13.     
  14.     dispatch(actions.incrementCounter)}> 
  15.      Counter +1 
  16.     
 
  • ); 
  • }; 
  • 5.React hook form
    React hook form是一個與Formik和Redux表單相似的表單校驗hook庫,但是更好!憑借其更簡單的語法,速度,更少的轉(zhuǎn)譯和更好的可維護性,它開始爬上GitHub的階梯。它的體積很小,并且考慮到性能而構建。該庫甚至提供了它的表單生成器,這很棒!它是React鉤子庫(14.8k)中GitHub啟動數(shù)量最多的平臺之一。

    它提供的主要功能:

    • 非受控表單校驗
    • 以性能和開發(fā)體驗為基礎構建
    • 迷你的體積而沒有其他依賴
    • 遵循 html 標準進行校驗
    • 與 React Native 兼容
    • 支持瀏覽器原生校驗

    地址:https://github.com/react-hook-form/react-hook-form

    使用案例:

     
     
     
     
    1. import React from "react"; 
    2. import { useForm } from "react-hook-form"; 
    3.  
    4. function App() { 
    5.   const { register, handleSubmit, errors } = useForm(); 
    6.   const onSubmit = (data) => { 
    7.     // logs {firstName:"exampleFirstName", lastName:"exampleLastName"} 
    8.     console.log(data); 
    9.   }; 
    10.  
    11.   return ( 
    12.      
    13.        
    14.        
    15.       {errors.lastName && "Last name is a required field."
    16.        
    17.       {errors.age && "Please enter number for age."
    18.        
    19.      
    20.   ); 

    6.useDebounce
    useDebounce 表示一個用于去抖的小鉤子。它用于將功能執(zhí)行推遲到以后。常用于獲取數(shù)據(jù)的輸入和表格中。

    地址:https://github.com/xnimorz/use-debounce

    使用案例:

     
     
     
     
    1. import React, { useState } from "react"; 
    2. import { useDebounce } from "use-debounce"; 
    3.  
    4. export default function Input() { 
    5.   const [text, setText] = useState("Hello"); 
    6.   const [value] = useDebounce(text, 1000); 
    7.  
    8.   return ( 
    9.     
       
    10.       
    11.         defaultValue={"Hello"} 
    12.         onChange={(e) => { 
    13.           setText(e.target.value); 
    14.         }} 
    15.       /> 
    16.       

      Value: {text}

       
    17.       

      Debounced value: {value}

       
    18.     
     
  •   ); 
  • 7.useLocalStorage
    useLocalStorage是一個小鉤子,與上面的鉤子一樣。這對于在localStorage中提取和設置數(shù)據(jù)非常有用。操作變得容易。提供跨多個選項卡的自動JSON序列化和同步,并以TypeScript編寫,因此它提供了類型。

    文檔以高質(zhì)量的方式編寫,并且可以通過擴展示例來很好地理解。

    地址:https://github.com/rehooks/local-storage

    使用案例:

     
     
     
     
    1. import React, { useState } from "react"; 
    2. import { writeStorage } from '@rehooks/local-storage'; 
    3.  
    4. export default function Example() { 
    5.   let counter = 0; 
    6.   const [counterValue] = useLocalStorage('counterValue'); 
    7.  
    8.   return ( 
    9.     
       
    10.       {counterValue} 
    11.        writeStorage('i', ++counter)}> 
    12.         Click Me 
    13.        
    14.     
     
  •   ); 
  • 8.usePortal
    usePortal 使創(chuàng)建下拉菜單,模態(tài),通知彈出窗口,工具提示等變得非常容易!它提供了在應用程序的DOM層次結(jié)構之外創(chuàng)建元素的信息(react docs)。該鉤子與SSR一起使用,因為它是同構的。用TypeScript編寫并具有內(nèi)置狀態(tài)。它還提供了portals樣式和大量其他選項的完全定制。

    為此編寫的文檔非常好,其中顯示了許多示例,這些示例對于開始使用庫/自己做鉤子來說綽綽有余。

    地址:https://github.com/alex-cory/react-useportal

    使用案例:

     
     
     
     
    1. import React, { useState } from "react"; 
    2. import usePortal from "react-useportal"; 
    3.  
    4. const Example = () => { 
    5.     const { ref, openPortal, closePortal, isOpen, Portal } = usePortal() 
    6.  
    7.     return ( 
    8.       <> 
    9.           openPortal()}> 
    10.             Open Portal 
    11.           
    12.           {isOpen && ( 
    13.              
    14.               

       

    15.                 This Portal handles its own state.{' '} 
    16.                 Close me!, hit ESC or 
    17.                 click outside of me. 
    18.               

       
    19.              
    20.           )} 
    21.         
    22.  ) 

    9.useHover
    useHover是一個React state hook,它確定是否正在hover React元素。簡單易用。該庫很小,易于使用,但如果您有足夠的創(chuàng)造力,它可能會很強大。

    它還提供了懸停效果的延遲。支持TypeScript。文檔沒有那么詳細,但是它將向您展示如何正確地使用它。

    地址:https://github.com/andrewbranch/react-use-hover

    使用案例:

     
     
     
     
    1. import useHover from "react-use-hover"; 
    2.  
    3. const Example = () => { 
    4.   const [isHovering, hoverProps] = useHover(); 
    5.   return ( 
    6.     <> 
    7.       Hover me 
    8.       {isHovering ? 
       I’m a little tooltip! 
       : null} 
    9.      
    10.   ); 

    10.React router hooks
    React router hooks是React最受歡迎的庫之一。它用于路由和獲取應用程序URL歷史記錄等。它與Redux一起實現(xiàn)了用于獲取此類有用數(shù)據(jù)的hook。

    它提供的主要功能是:

    useHistory
    useLocation
    useParams
    useRouteMatch
    它的名字很不言自明。UseHistory將獲取應用程序歷史記錄和方法的數(shù)據(jù),例如push推送到新路由。UseLocation將返回代表當前URL的對象。UseParams將返回當前路徑的URL參數(shù)的鍵-值對的對象。最后,useRouteMatch將嘗試將當前URL與給定URL進行匹配,給定URL可以是字符串,也可以是具有不同選項的對象。

    文檔很好,寫了很多例子

    地址:https://github.com/ReactTraining/react-router

    使用案例:

     
     
     
     
    1. import { useHistory, useLocation, useRouteMatch } from "react-router-dom"; 
    2.  
    3. const Example = () => { 
    4. let history = useHistory(); 
    5. let location = useLoction(); 
    6. let isMatchingURL = useRouteMatch("/post/11"); 
    7.  
    8. function handleClick() { 
    9.     history.push("/home"); 
    10.  
    11. return ( 
    12.     
       
    13.         Current URL: {location.pathname} 
    14.         {isMatchingURL ? Matching provided URL! Yay!  : null} 
    15.          
    16.             Go home 
    17.          
     
  • ); 
  • 11.react-use
    react-use是一個必不可少的 React Hooks集合.你需要安裝React 16.8.0或更高版本才能使用Hooks API。

    地址:github.com/streamich/react-use

    使用案例:

     
     
     
     
    1. import {useBattery} from 'react-use'; 
    2.  
    3. const Demo = () => { 
    4.   const state = useBattery(); 
    5.  
    6.   return ( 
    7.     
       
    8.       {JSON.stringify(state, null, 2)} 
    9.     
     
  •   ); 
  • }; 
  • 當前還有更多的鉤子庫,找到適合自己使用的就是最好的,不僅提高了開發(fā)的效率,而且讓代碼更加整潔,簡單。


    本文名稱:推薦十一個React Hook庫
    轉(zhuǎn)載注明:http://www.dlmjj.cn/article/dhesdog.html