對於React Hooks的理解

2021-10-02 11:31:41 字數 1125 閱讀 1951

react元件可以分為類元件函式元件類元件具有生命週期、狀態,而函式元件卻沒有。

react 16.8新出來的hooks 可以讓react函式元件具有狀態,並且提供了類似componentdidmountcomponentdidupdate等生命週期方法。

栗子?:

我們寫乙個函式元件,如果想要更新它的狀態,在 react 16.8版本之前,就得重寫成 類元件。

在 react 16.8 出來的hooks 之後,這就變得簡單多了。

使用新的usestatehook 向普通函式元件新增狀態。

const

[clicked,useclicked]

=usestate

(false);

// 分離出來寫法

const arr =

usestate

(false);

const clicked = arr[0]

;const useclicked = arr[1]

;

hooks 在16.8版本之後可以使用,它能讓我們在不使用class就能使用state和其它的react的特性。

比如:之前我們想要用state必須先寫一行:

class

extends

react.component

這樣才能用state和setstate,但是現在有了hooks,就不需要了。我們可以在普通函式元件裡面使用hooks實現之前class裡的state、生命週期等。

為什麼要使用hooks呢?

因為setstate。生命週期之類的函式其實是定義給元件的一些鉤子函式,它們被耦合在了class裡面,所以我們定義有狀態元件和有生命週期的元件必須定義class。而hooks的出現,把這些功能性的鉤子和class分離開了。

hooks包含 state hook 、effect hook、context hook等基礎的hooks,還有一些自定義hooks和一些其他的鉤子,可以再官方文件裡面檢視。

你真的理解 React Hooks 嗎

react hooks 是在 react 16.8 版本新增的特性,在我看了 react 官網 和一些部落格對 react hook 的講解後還是覺得沒有 get 到本質。大部分的 react hook 的講解都是針對於 react hook 的作用 使用規則 定義規則等。對於新手來說還是覺得會使用...

對於STL的理解

stl standard template library stl是一些 容器 的集合,這些 容器 有list,vector,set,map等,stl也是演算法和其他一些元件的集合。這裡的 容器 和演算法的集合指的是世界上很多聰明人很多年的傑作。stl的目的是標準化元件,這樣就不用重新開發,可以使用...

對於ftok的理解

回顧了一下以前的實驗,一直不理解為什麼在訊息佇列中要使用ftok,比如下面的乙個例項 if key ftok a 1 qid msgget key,ipc creat 0666 建立乙個訊息佇列 if qid 0 printf created queue id d n qid 輸出訊息佇列的id 要...