国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

react hooks 全面轉換攻略(二) react本篇剩余 api

molyzzx / 933人閱讀

摘要:不知道大家有沒有使用過他的作用和中的差不多吧在需要讀取的高度寬度的時候特別需要說到現在基本已經講完了除了我將會放在篇中講述相關文章全面轉換攻略一本篇之全面轉換攻略二本篇剩余全面轉換攻略三全局存儲解決方案

useCallback,useMemo

因為這兩個 api 的作用是一樣的,所以我放在一起講;

語法:

function useMemo(factory: () => T, deps: DependencyList | undefined): T;
function useCallback any>(callback: T, deps: DependencyList): T;

區別在于第一個參數,還有參數的傳遞,另外 useCallback 中 DependencyList 是一個必須值

這兩個 api 的作用基本就是緩存數據/方法

使用過 react 的人都知道,在組件傳遞值的時候,如果 props 中某一值對象引用發生變化,就會發生重新渲染,即使前后2個對象是完全相同的;

這2個參數就是為了解決這個問題,另外也有可以減輕一些方法的rerender的速度;

useRef

作用基本是取代 class 中的 createRef,在此不多細說

useContext

作用基本是取代 class 中的 Context 中 Context.Provider ,接受參數 Context,因為可能會有多層 context,所以這個參數是必須的,不然無法辨別

useImperativeHandle

語法:

function useImperativeHandle(ref: Ref|undefined, init: () => R, deps?: DependencyList): void;

官網是叫 useImperativeMethods,但是我在 @types/react@17.8.7 中,是叫做 useImperativeHandle的,不過函數名還是以實際為準

在官網中,他的作用是這樣解釋的:

useImperativeMethods自定義使用ref時公開給父組件的實例值。 與往常一樣,在大多數情況下應避免使用refs的命令式代碼。

這個 api 的使用必定伴隨著 forwardRef 這個 api, 使用率基本較低;

官方例子:

function FancyInput(props, ref) {
  const inputRef = useRef();
  useImperativeMethods(ref, () => ({
    focus: () => {
      inputRef.current.focus();
    }
  }));
  return ;
}
FancyInput = forwardRef(FancyInput);
在此示例中,呈現的父組件將能夠調用fancyInputRef.current.focus()。

簡單的說就是講子組件中的創建方法暴露給父組件

useMutationEffect
簽名與useEffect相同,但在更新兄弟組件之前,它在React執行其DOM突變的同一階段同步觸發。 使用它來執行自定義DOM突變。

同樣的 @types/react@16.8.7 沒有這個函數的聲明;
不過官網中 大多是告誡盡量少用此函數

useLayoutEffect

語法:

function useLayoutEffect(effect: EffectCallback, deps?: DependencyList): void;

參數基本和 useEffect 相同

官方所說的效果:

簽名與useEffect相同,但在所有DOM突變后它會同步觸發。 使用它從DOM讀取布局并同步重新渲染。 在瀏覽器有機會繪制之前,將在useLayoutEffect內部計劃的更新將同步刷新。

不知道大家有沒有使用過 vue,他的作用和 vue 中的 nexttick 差不多吧;
在需要讀取 dom 的高度,寬度的時候特別需要

說到現在, api 基本已經講完了,除了 useReducer, 我將會放在 redux 篇中講述

相關文章:

react hooks 全面轉換攻略(一) react本篇之useState,useEffect

react hooks 全面轉換攻略(二) react本篇剩余 api

react hooks 全面轉換攻略(三) 全局存儲解決方案

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103538.html

相關文章

  • react hooks 全面轉換攻略(一) react本篇之useState,useEffect

    摘要:經典案例此例子中是最新的語法其中是他的值是用來設置值的函數是初始值該初始值可以接受任何參數但是記得當他接受為一個函數時就變成了延遲初始化該函數返回值即為這兩種初始化方式是相等的但是在函數為初始值時會被執行一次這里只會在初始化的時候執行中的 useState 經典案例: import { useState } from react; function Example() { con...

    KnewOne 評論0 收藏0
  • 正則表達式

    摘要:最全正則表達式總結驗證號手機號中文郵編身份證地址等是正則表達式的縮寫,作用是對字符串執行模式匹配。學習目標了解正則表達式語法在中使用正則表達式在中使 JS高級技巧 本篇是看的《JS高級程序設計》第23章《高級技巧》做的讀書分享。本篇按照書里的思路根據自己的理解和經驗,進行擴展延伸,同時指出書里的一些問題。將會討論安全的類型檢測、惰性載入函數、凍結對象、定時器等話題。1. 安全的類型檢測...

    yibinnn 評論0 收藏0
  • 您的四月份前端補給包已到,請查收~

    摘要:版本發布月日,官博發文宣告正式發布。官方文檔提供了如下的示例終端上的輸出熱門文章我在阿里云做前端抓住我們核心的競爭力,并同時發現業務中的問題,跨端推進解決,這是最好的出路。 showImg(https://segmentfault.com/img/remote/1460000019038442); 【阿里云 TXD 前端月刊】- 熱門前端技術快報,聚焦業界新視界;前端領域急速發展的節奏...

    wushuiyong 評論0 收藏0
  • 您的四月份前端補給包已到,請查收~

    摘要:版本發布月日,官博發文宣告正式發布。官方文檔提供了如下的示例終端上的輸出熱門文章我在阿里云做前端抓住我們核心的競爭力,并同時發現業務中的問題,跨端推進解決,這是最好的出路。 showImg(https://segmentfault.com/img/remote/1460000019038442); 【阿里云 TXD 前端月刊】- 熱門前端技術快報,聚焦業界新視界;前端領域急速發展的節奏...

    amc 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<