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
模式统一提供对外的接口以访问内部的子系统