大家跟大家聊一聊React中的Hooks是什么:
Hooks:鉤子、鉤住,是 React@16.8 提供的新功能,
-
作用:為函陣列件提供狀態、生命周期等原本 class 組件中才有的功能,可以理解為通過 Hooks 為函式式組件鉤入了 class 組件的特性,
-
React@16.8以前,class 組件(提供狀態和生命周期) + 函陣列件(展示內容), -
React@16.8以后,class 組件(提供狀態和生命周期) + 函陣列件(展示內容),Hooks(提供狀態和生命周期) + 函陣列件(展示內容),也可以混用這兩種方式,即部分功能用 class 組件,部分功能用 Hooks + 函陣列件, -
注意:Hooks 只能在函陣列件中使用,雖然有了 Hooks,但 React 官方并沒有計劃從 React 庫中移除 class,
為什么要有 Hooks?
-
Hooks解決了組件的狀態邏輯復用問題
a,在 Hooks 之前,組件的狀態邏輯復用經歷了:mixins(混入)、HOC(高階組件)、render props 等模式,
b,(早已廢棄)mixins 的問題:資料來源不清晰;命名沖突,
c,HOC、render props 的問題:重構組件結構,導致組件形成 JSX 嵌套地獄問題,
-
Hooks解決了class 組件自身的問題
a,選擇:函陣列件和 class 組件之間的區別以及使用哪種組件更合適,
b,需要理解 class 中的 this 是如何作業的,
c,同一業務的狀態和業務邏輯被拆分到不同位置,
需要注意的是: Hooks 和之前 class 的寫法是可以共存的,React官方沒有計劃從 React 中移除 class 組件,但不能在 Hooks 組件中,使用 class 組件相關的 API,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/379195.html
標籤:其他
