我是如何使用高效学习模板来学习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一起探讨,备注工具学习

相关推荐
一颗松鼠1 分钟前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
学术头条19 分钟前
AI 的「phone use」竟是这样练成的,清华、智谱团队发布 AutoGLM 技术报告
人工智能·科技·深度学习·语言模型
小远yyds21 分钟前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
孙同学要努力28 分钟前
《深度学习》——深度学习基础知识(全连接神经网络)
人工智能·深度学习·神经网络
喵~来学编程啦1 小时前
【论文精读】LPT: Long-tailed prompt tuning for image classification
人工智能·深度学习·机器学习·计算机视觉·论文笔记
阿伟来咯~1 小时前
记录学习react的一些内容
javascript·学习·react.js
吕彬-前端1 小时前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱1 小时前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai1 小时前
uniapp
前端·javascript·vue.js·uni-app
bysking2 小时前
【前端-组件】定义行分组的表格表单实现-bysking
前端·react.js