React Hooks 核心原理与实战
业务场景驱动,带你吃透 React Hooks
王沛  eBay 中国研发中心资深技术专家
专栏
已完结·共 25 讲
|
1.1w 人已学
|
收藏
H
置顶
1,reset直接使用setState就行。 2,可以对该API自定义一个hook,在该hook初始化一个success和warn,用于提示用户处理结果信息, 在useCallback中处理发送请求的逻辑,useCallback依赖于外界name。 若服务器无此name值,则提示用户 操作成功,且清空表单数据。 若服务器有此name值,则向用户发出警告, 将此hook引入到useForm钩子中,在setFieldValue进行setValues之前,进行接口查询操作!
2021-07-03
余熙
这一节总结得非常好,官方文档和网上文章没写出来的干货👍
2021-06-27
李亚方
置顶
const useClick = (id) => { const [data, setData] = useState(null); const [loading, setLoading] = useState(null); const [error, setError] = useState(null); const exeFun = useCallback(() => { setLoading(true); setData(null); setError(null); apiClient .get(`/posts/${id}`) .then((res) => { setLoading(false) setData(res.data) }) .catch((err) => { setLoading(false) setError(err); }) }, []); return { exeFun, data, loading, error } } const { exeFun, data:comm } = useClick(1); <button onClick={()=>{exeFun("1")}}>点击发送请求</button> 按照老师之前写的逻辑,用这种方式也可以点击按钮后去发送请求获取数据
2021-06-27
Free fall
可以按多个 const useKeypress = (node = document.body) => { const [key, setKey] = useState(null) function reset() { setKey(null) } useEffect(() => { function handleKeypress(e) { setKey((key) => key + ',' + e.keyCode) } node && node.addEventListener('keypress', handleKeypress) return () => { node.removeEventListener('keypress', handleKeypress) } }, [node]) return [key, reset] }
2021-06-20
江谢木
老师,article?.userId和article&&article.userId的作用是一样的?第一次见这种写法,感觉好简洁
作者回复:这是新的 js 的标准 叫做 optional chaining:https:&#47;&#47;github.com&#47;tc39&#47;proposal-optional-chaining ,目前已经到 stage 4 完成状态。 在处理 article 可能是 undefine的 的情况时,两者是等价的。但如果 article 还可能是 0,false,null 这样的 falsy 的值时,两者的返回值会不一样。article &amp;&amp; article.userId 返回 0, false 或者 null,而 article?.userId 返回 undefined。 所以一般情况下,我们都可以用 ?. 来简化一些条件判断。
2021-06-20
Isaac
置顶
思考题: 1. useArticle Hook 可以提供一个参数,用来标记本地调用是否默认触发副作用去获取数据;对于点击按钮才触发请求的功能,可以在 Hook 中将获取数据的方法 retrn 出去,供外部自由调用。 2. 可以借助 redux,配合 useContext 等 api ,将状态数据存储至全局中。
2021-06-15
sugar
置顶
我大概从2015年左右开始关注过这个前端框架,对我来说react比较打动人的地方主要有3点: 1 jsx 的业务代码形态 使得xml 和 js很好地结合,低成本复用很多js的生态 2 在当时 react给了一批较为资深的jser一种“希望”,能够让自己写的业务逻辑 脱离dom,为什么要脱离dom呢?因为2015年正是移动端开发较为火热的时候,react的这种机制给了人更多的“想象力”可以把js业务代码移植到其他平台去,reactnative也就自然而然地应孕而生。 这一条是在我看来react能够流行起来的挺关键的一个因素,倘若这个框架早10年 或者 晚 10年出现,恐怕都不一定能流行的起来。 3 react还适时地拥抱了 近年来前端圈子里另一股coding流行风潮,那就是FP 或者 FRP。FP其实本质上并没有比OOP 提高多少开发效率,OOP诞生于工业界土壤,而FP最初是学术界喜欢把玩的一种编程范式,因此FP可玩性强,资深jser们在那几年 都喜欢赶FP的时髦 一头扎进函数编程里不亦乐乎(尽管写出的代码可能只有自己看得懂但却依然乐在其中)于是乎react也凭借这一点 笼络了更多高阶前端的心,于是乎也就会有更多资深jser为react站台背书,再之后就会有更多新人愿意学这个框架 …. 如此往复 形成了一个正向反馈~ 一点拙见 欢迎讨论。
作者回复:说的很好~ JSX 同时满足了模板语言的直观和 JS 的灵活性。虚拟 DOM 的存在让业务逻辑和展现逻辑的分离可以更彻底,拆分了复杂度也更容易去测试。至于 FP,并不是刻意追求的目标,也和 React 没有太大的关系。更多算是一种巧合吧,因为 immutable 的缘故,很多就看上去很像了。
2021-05-27
不若吃茶去
为了生存,公司用这个,不会用就要失业
作者回复:活到老学到老~
2021-05-27
尽兴🎉
react的 Concurrent 模式可帮助应用保持响应,并根据用户的设备性能和网速进行适当的调整。 官网看到这句话真的惊的一批 这才是前端吗
作者回复:其实这个模式对开发和用户暂时都没有太多的感知 🙂
2021-05-27
凡凡
路由变化可以作为数据源吗
作者回复:可以的,像 react router 就提供了这个 Hook,也有一些第三方 library 也提供了,比如:https:&#47;&#47;github.com&#47;streamich&#47;react-use&#47;blob&#47;master&#47;src&#47;useLocation.ts 就是一个实现。
2021-05-27
讲师

王沛

eBay 中国研发中心资深技术专家

王沛,现担任 eBay 中国研发中心资深技术专家,负责 eBay 内部前端框架的研发。 作为国内第一批 React 的实践者和布道者,创建了 Rekit 开源项目:专属的 React 开发 IDE,目前在 GitHub 有超过 5000 Star。 曾任职于 IBM 和 ...查看更多
编辑推荐
讲师的其他课程
React 实战进阶 45 讲
王沛
eBay 中国研发中心资深技术专家

46讲 | 35694 人已学习

¥68¥199
看过的人还看了
重学前端
程劭非(winter)
前手机淘宝前端负责人

57讲 | 105377 人已学习

¥59¥129
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283805 人已学习

¥68¥199
浏览器工作原理与实践
李兵
前盛大创新院高级研究员

46讲 | 56422 人已学习

¥59¥129
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 181001 人已学习

¥98¥399
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123470 人已学习

¥98¥299
现代 React Web 开发实战
宋一玮
FreeWheel 中国研发中心前端架构师

31讲 | 16132 人已学习

¥59¥99