日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
效率寶典:7個超棒的ReactHooks

 本文轉(zhuǎn)載自公眾號“讀芯術”(ID:AI_Discovery)。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的綏芬河網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

在React hooks發(fā)行前,React軟件的功能性組件使用比較有限,在處理狀態(tài)、上下文API以及一些生命周期方法時往往無計可施。但從React 16.8版本開始,用戶則能更加靈活地使用一些已經(jīng)存在的代碼。

本文就將帶大家學習如何使用不同的React hooks來解決日常所遇到的問題。

useFilerHook

Christopher Patty集合了一組很酷的hook函數(shù),該集合被稱為“crook.”。我個人很喜歡useFiler Hook,因為它能在Web瀏覽器中創(chuàng)建虛擬文件系統(tǒng),而且基本上該函數(shù)是利用瀏覽器的本地存儲來管理文檔和文檔內(nèi)容。

首先,在應用程序中安裝“crooks”安裝包:

 
 
 
 
  1. npm install crooks --save

現(xiàn)在,引入 crooks中的useFiler Hook:

 
 
 
 
  1. import { useFiler } from 'crooks'

至此,已經(jīng)準備好初始化hook并管理虛擬文件系統(tǒng)了。這里用一個簡單的代碼片段舉例子:

 
 
 
 
  1. constApp= () => {
  2.        const [files, {add,remove, update, clear}] =useFiler("localStorageItem")
  3.        return (
  4.          
    My Project
  5.        )
  6.      }

如上述代碼所示,可以使用add(), remove(), update()以及clear() 方法。接下我們來學習如何使用它們。

(1) 添加文件

add() 函數(shù)接受一個必需的參數(shù)。我們需要傳遞JavaScript Object Notation(簡稱JSON)可序列化的數(shù)據(jù):

 
 
 
 
  1. update("abc1234", "New content of file.")

注意,這個函數(shù)將會自動為每一個新文件生成一個ID,但是用戶仍然可以通過傳遞一個整數(shù)或者一串字符串作為第二個參數(shù)來設置一個自定義ID。

(2) 更新文件

update() 方法接受兩個自變量。第一個是文件的ID,而另一個自變量則用于傳遞新數(shù)據(jù):

 
 
 
 
  1. update("abc1234", "New content of file.")

(3) 移除文件

使用 remove() 方法傳遞文件ID以刪除它:

 
 
 
 
  1. remove("abc1234")

(4) 清除所有文件

調(diào)用clear() 方法移除所有文件:

 
 
 
 
  1. clear()

2. useFetch Hooks

圖源:unsplash

Steven Persia(一位MERNStack的開發(fā)人員)編寫了很多React hooks,并將其命名為“Captain hook.”,它們在處理日常任務時非常有用。接下來幾個hook的例子都取自他的集合。

useFetch能夠從應用程序接口(API)提取數(shù)據(jù)。請求完成后,它將返回響應及錯誤。將useFetch引入項目:

 
 
 
 
  1. import useFetch from "hooks/useFetch";

發(fā)出請求:

 
 
 
 
  1. const { response, errors } = useFetch("https://api.github.com/users/torvalds/repos");

3. useHover Hook

useHover Hook也屬于“Captain hook”合集。通常來說,該函數(shù)會跟蹤屏幕上的鼠標光標來檢測其是否處在特殊的元素上方。如果是,它將會觸發(fā)懸停事件。

引入useHover Hook:

 
 
 
 
  1. import useHover from "hooks/useHover";

將其初始化:

 
 
 
 
  1. const [hoverMe, isHovered] = useHover();

此處,hoverMe 表示特定的超文本標記語言元素,而isHovered則包含可以在條件語句中檢查的布爾值。例如,可以這樣使用:

 
 
 
 
  1. {isHovered ? "Hovered!" : "Hoverme!"}

4. useSlugHook

Slug是每個Web項目中必不可少的部分。事實上,它也可以提升一個網(wǎng)站的搜索引擎優(yōu)化(Search Engine Optimization,簡稱SEO)。

這也是Steven將useSlug 加入他“Captain hook”合集的原因。使用useSlug可以快速將任何字符串轉(zhuǎn)化為為對SEO友好的slug。它十分智能,能夠?qū)⑷魏巫円舴?重音符號)用它的標準對等音表示。例如,它能夠?qū)?é 或 è 轉(zhuǎn)化為e表示。

與往常一樣,首先需要引入這個hook:

 
 
 
 
  1. import useSlug from "hooks/useSlug";

用法:

在初始化該hook的同時,需要傳遞任意字符串(例如一個文章的名稱)作為第一個參數(shù)。結(jié)果就是它將返回一個格式正確的slug,該slug能夠立刻應用到項目中。

 
 
 
 
  1. useSlug("React Hooks! résoudre les problèmes quotidiens");//react-hooks-resoudre-les-problemes-quotidiens

5. useDrag和useDropHooks

有一個名為“ahooks”的開源React Hooks庫,它是由電子商務巨頭阿里巴巴和一些志愿者共同積極開發(fā)的。在撰寫本文時,該庫共有約46個hook,它們中的每個函數(shù)都聚焦于解決某一特定的問題。

這里將介紹一對hooks:useDrag 和 useDrop。你可能已經(jīng)對它們的功能有所了解,但我一定要談談它們對我們實現(xiàn)HTML5的拖放功能的幫助。

先來安裝:

 
 
 
 
  1. npm install ahooks --save

引入這個hook:

 
 
 
 
  1. import { useDrag, useDrop } from 'ahooks';

用法:

首先,初始化useDrag 和useDrop Hook。useDrag 返回傳遞給文檔對象模型(Document Object Model,簡稱DOM)元素的Prop。useDrop 返回傳遞給放置區(qū)域的Prop。它還能通過布爾屬性(isHovering)來通知拖動元素是否放在了放置區(qū)域的頂部。

最后,useDrop 有四個回調(diào)函數(shù),它們依據(jù)放置項的類型來執(zhí)行:

  • onText
  • onFiles
  • onUri
  • onDom
 
 
 
 
  1. const getDragProps =useDrag();
  2.             const [props, {isHovering }] =useDrop({
  3.              onText: (text, e) => {
  4.                alert(`'text: ${text}' dropped`);
  5.              },
  6.              onFiles: (files, e) => {
  7.                alert(`${files.length} file dropped`);
  8.              },
  9.              onUri: (uri, e) => {
  10.                alert(`uri: ${uri} dropped`);
  11.              },
  12.              onDom: (content: string, e) => {
  13.                alert(`custom: ${content} dropped`);
  14.              }
  15.             });

可以使用鼠標拖動的HTML5元素:

 
 
 
 
  1. Draggable Element

這是一個HTML5元素,可以在其中放置一些東西:

 
 
 
 
  1.   {isHovering ? 'Release Item Here' :'Drop Anything Here'}

6. useDarkMode Hook

Craig Walker原創(chuàng)的“React Recipes”是一個很受歡迎的自定義React hooks集合,該集合中的 useDarkMode Hook能夠?qū)崿F(xiàn)網(wǎng)站主題在明暗模式之間的切換。切換模式后,它將當前值儲存在localStorage中。這意味無論在哪里打開瀏覽器,用戶偏好的模式將會被應用于所有瀏覽器。

安裝庫:

 
 
 
 
  1. npm install react-recipes --save

引用:

 
 
 
 
  1. import { useDarkMode } from "react-recipes";

舉個例子,一般來說,useDarkMode() 返回結(jié)果有兩類:

  • darkMode: 當開啟黑暗模式,布爾值為真。
  • setDarkMode:在明暗模式之間切換。
 
 
 
 
  1. functionApp() {
  2.           const [darkMode, setDarkMode]=useDarkMode();
  3.           return (
  4.            
  5.              
  6.            
  •           );
  •         }
  • 本文我們學習了在日常工作中應用React Hooks。上述例子僅僅只是滄海一粟,還有無數(shù)的開源hook供你應用于自己的項目中。開源的意義正在于此,React Hooks最主要的好處就是編寫更多更好且更實用的代碼。


    名稱欄目:效率寶典:7個超棒的ReactHooks
    本文路徑:http://m.5511xx.com/article/dhdeoho.html