CTO
一直跟我在宣揚faced
模式,可是當時沒有get
到它的點get
到的時候,他已經不在我身邊工做了,真是一個悲傷的故事什麼是react hooks
?前端
import React, { useState } from 'react'; function Example() { // 聲明一個新的叫作 「count」 的 state 變量 const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); }
什麼是faced
模式(外觀模式)?react
什麼是自定義hooks
?數據庫
hooks
它是一個函數,其名稱以 「use」 開頭,函數內部能夠調用其餘的 Hook,一個常見的自定義hooks
以下:import { useState, useEffect } from 'react'; function useFriendStatus(friendID) { const [isOnline, setIsOnline] = useState(null); useEffect(() => { function handleStatusChange(status) { setIsOnline(status.isOnline); } ChatAPI.subscribeToFriendStatus(friendID, handleStatusChange); return () => { ChatAPI.unsubscribeFromFriendStatus(friendID, handleStatusChange); }; }); return isOnline; }
這個hook
的做用是:經過傳入的好友id
,調用其餘的hook
,來判斷其是否在線。
faced
模式意在提供一個統一的接口,用來訪問子系統中的一羣接口react hooks
提供更多的前端統一接口例如在作IM即時通信
客戶端的時候,咱們可能會在客戶端,須要在一個好友羣組重判斷是否能經過預覽查看對方的朋友圈簡介後端
-
hook
hook
,這是一個常見的需求hook
hook
,去組裝這兩個hook
,咱們先繪製一個業務流程圖,而且拆解出幾個自定義hook
這個時候問題來了,若是不封裝hook
,那麼咱們將要在組件使用的地方去調用這幾個hook
或者函數,而後組件內部經過一系列處理判斷去完成這個業務邏輯判斷,但是這個經過頭像查看羣組內對方朋友圈的狀況不止一個地方會用到,那麼此時就須要複用這個邏輯,這裏就須要用到faced
模式了
這個時候,咱們應該提供一個hook
,經過它去訪問這幾個hook
,最後在業務中去複用這個邏輯
hook
.用來訪問內部的多個hook
faced模式對外業務使用場景:設計模式
這樣,你或許不只明白了爲何React會造出hooks
這個東西,還明白了什麼是faced
模式
faced
模式和react hooks
的結合,在業務系統開發中,能夠極大的提高效率,而且能夠增強複雜業務系統的健壯性,單一邏輯的hook
跟單一邏輯的後端接口對應,複雜的業務由faced
模式統一提供對外的接口以訪問內部的子系統