我是如何使用高效学习模板来学习React的?

凡做事,必有方法。

一、前言

事情是这样的,最近公司新开了一个项目,前端组就两个人,我加上一个异地办公的同事,原本的技术栈用的是Vue,因为中间多种因素新项目需要采用React,而我是Vue的重度使用者,对React细节了解不多,也没怎么写过大型React项目,刚好有这个契机用2天时间带薪研究了一下,顺便分享这个过程我是如何上手的。

二、我认知中的React

在没研究之前,我对React的认知停留在这几方面:

  • 一个优秀的MVVM框架,在很多方面Vue都借鉴了React实现,例如虚拟DOMReactivity系统、组件Props通信、单向数据流等
  • React采用的是JSX的语法来编写组件,而Vue中使用的是.vue单文件组件,但经过版本迭代也支持JSX语法,毕竟它在灵活性上占有很大优势。
  • React推崇函数式编程,后续引入了hooks受到社区和面试官的喜爱。
  • 引入了fiber架构,精确的对任务进行控制和调度,并且利用浏览器空闲时间执行任务队列。

有人会问,你难道之前都不想着学习一下吗?非得等到要用的时候才开始。

倒也不是,过去也有了解,但没有实际业务中落地实践,很多东西都忘了,所以我推崇优先在业务中学习就是这个原因。

好,基于上面的认知层面,接下来介绍一下我是如何学习的?

三、学习模板

在我认知内,凡做事,就一定有方法,这个方法就是一套模板,在遇到问题的时,用模板套上去就可以解决问题,而这种模板需要根据个人在实践中总结出来。

对于学习新技术领域,我用的是系统性学习模板

  1. 技术出现的背景、初衷是什么或者是解决什么样的实际问题?
  2. 技术的优势和劣势分别是什么?
  3. 技术的适用场景有哪些?
  4. 技术的组成部分和关键点:核心思想、核心板块。
  5. 技术的底层原理和关键实现。
  6. 行业已有方案(实现)和它之间的对比。

有了这个模板之后,接下来怎么做呢?

给自己提问题

围绕这个模板,我在翻阅React资料之前给自己提了以下问题:

  1. 为什么这么多厂会采用React作为开发框架,它相比其他框架如Vue具有哪些优劣势,适用于哪些场景?即使Vue深受国内开发者喜爱
  2. React发展史是怎么样的,经历了哪些重大的升级迭代
  3. 什么是hooks?它是为了解决什么问题而生?
  4. 没有hooks之前状况又是怎么样的?
  5. 常用的hooks有哪些?开发者又应该如何更好使用它?
  6. 没有引入fiber之前,又是怎么样分配任务的呢?旧架构存在什么问题或瓶颈?fiber又是如何解决这些问题?实现原理又是怎么样的?
  7. 对比Vue,它是如何做状态管理和组件通信的?有哪些常用的方式
  8. 对比VuexRedux的设计思想是怎么样的?react-redux的作用是什么,充当着什么样的角色?

如何解决疑问

带着以上的问题,我又是通过什么方式去寻找答案呢?

答案是:官方文档 + ChatGPT

官方文档是一手信息,是最原汁原味的,没有通过他人的解说和咀嚼,信息是最准确的,这个也是深度学习的基础,就是信息的来源必须是一手。有了基础的认知之后,再去看网上的文章,对比别人是如何理解的,对于知识点的理解会更深。

但是有人会说,官方的话术太官方啦,压根看不懂,很多术语没法理解呀!

的确是的,所以我会使用AI工具作为辅助,来帮助我理解知识点,同时可以检索一些文档上没有的资讯,例如与其他框架的对比亦或者是发展史,能够高效解答我们的问题。

除此之外,很多朋友会采用视频教程等方式来学习,这的确是一个学习方法,特别是针对初学者,并且我在早期的时候也是通过这种方式,但不得不说花费的时间也多,而且效果不一定最好,看完之后就懒得敲了,所以我放弃了这种方式。

关于ChatGPT使用,朋友们没办法注册账号的可以找我,本人还有一些余额在某平台上。

深入细节

搞懂以上问题之后,基本上对于React有了整体的认识,加上对Vue的熟悉度较高,接下来就很容易深入细节,随之会产生新的问题,比如:

  1. React的合成事件是什么?它解决了什么问题?有哪些合成事件?实现原理又是怎么样的?
  2. 为什么总是听到副作用这个词?这个副作用指的是什么?如何处理副作用?什么场景下需要处理副作用?
  3. Vue里面又是如何处理这个副作用的?
  4. setState是同步还是异步的?(面试高频)
  5. useState是什么?为什么它返回的是一个数组,而不是对象?
  6. useEffect用来处理副作用,为什么需要传一个依赖数组?它的执行时机是什么时候?
  7. 无状态组件中的无状态表示什么?相比有状态组件,它有什么优势?
  8. VueReact在实现高阶组件上有什么区别?

好,以此类推,我就是通过这种方式不断深入细节的,了解完之后基本上可以直接上手写项目了,而且可以保证自己的代码质量。在此阶段,我顺便clone一份优秀的开源管理系统,一边看别人写的项目一边来弥补自己的盲区,效果非常可观。

总结

凡做事,必有方法。

具备这种思维方式应用在学习中非常高效,包括如何正确提问、如何与上级汇报等等,我都有一套模板,包括还应用日常生活中,比如如何与家人沟通等。

同时,很重要的一点,这种方式也非常适用于面试,可以快速扫清自己的知识盲点,我在求职期间也是用的这个方式,可以查看一年空窗期后我是如何准备面试的?这篇文章。

最后,文中提到了深度学习这个关键词,后面有时间单独写一篇文章出来。同时,关于ChatGPT工具以及更多思维模型学习交流,也可以加我私人联系方式followJavaScript一起探讨,备注工具学习

相关推荐
Ticnix26 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人30 分钟前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl33 分钟前
OpenClaw 深度技术解析
前端
崔庆才丨静觅37 分钟前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人1 小时前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼1 小时前
shadcn/ui,给你一个真正可控的UI组件库
前端
布列瑟农的星空1 小时前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust
Mr Xu_1 小时前
Vue 3 中计算属性的最佳实践:提升可读性、可维护性与性能
前端·javascript
jerrywus1 小时前
我写了个 Claude Code Skill,再也不用手动切图传 COS 了
前端·agent·claude
玖月晴空1 小时前
探索关于Spec 和Skills 的一些实战运用-Kiro篇
前端·aigc·代码规范