Hooks見證不一樣的函式元件

2021-10-09 08:51:52 字數 2051 閱讀 7378

react hooks

hooks是乙個新的react特性提案,適用於函式式元件(檢視元件),如果需要外部react特性(比如狀態管理、生命週期),就用鉤子把外部特性「鉤」進來,典型標誌是函式名字都是以use開頭。

usecontext 直接獲取祖先元素通過createcontext建立的context;

usereducer

const

[state, dispatch]

=usereducer

(reducer, initialstate, init)

;

memo,usememo和usecallback在優化元件的應用場景

useref

不符合capture values,本身不會變化,儲存的.current會變化

會觸發值的變化,不會調起render的重新渲染,多用於邏輯層資料處理,涉及到頁面重新渲染的需要使用usestate

useimperativehandle

配合forwardref使用,用於自定義通過ref給父元件暴露的值

usedebu**alue

用於開發者工具除錯

封裝hooks獲取視窗大小

// usewinsize

import react,

from

'react'

;export

default

function

usewinsize()

)const onresize =

usecallback((

)=>)}

,)useeffect((

)=>},

)return size;

}// demo.js

import usewinsize from

'./usewinsize'

export

default

function()

x<

/div>

)}

延遲設定值

import react,

from

'react'

export

const

usedelaystate

=(initialstate)

=>

, delay)

}useeffect((

)=>},

)return

[state, delaysetstate, setstate]

}

geolocation獲取地理定位

import

from

'react'

;const

usegeolocation

= options =>);

let mounted =

true

;let watchid: any;

const

onevent

= event =>);

}};const

oneventerror

=(error)

=>

mounted &&

setstate

(oldstate =>()

);useeffect((

)=>;}

,);return state;};

export

default usegeolocation;

不一樣又不一樣的 木板接水

空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...

我們不一樣

前輩們因自身實際的種種因素的影響而產生的認知,並不一定適用於我們自身。你可能從來不會去想乙個問題 你的觀點,來自 其實,它們絕大部分來自網路,它們或多或少地蠶食了你的判斷力。未來的路要怎麼走,沒有對與錯。有的,只是每乙個選擇所需要承擔的責任。我不想面臨,後之視今亦猶今之視昔的悲哀。我希望,未來回首,...

我們不一樣

這麼多年的兄弟 有誰比我更了解你 太多太多不容易 磨平了歲月和脾氣 時間轉眼就過去 這身後不散的筵席 只因為我們還在 心留在原地 張開手 需要多大的勇氣 這片天 你我一起撐起 更努力 只為了我們想要的明天 好好的 這份情好好珍惜 我們不一樣 每個人都有不同的境遇 我們在這裡 在這裡等你 我們不一樣 ...