我的 React 掌握之旅
让我们回到几年前,回到一个截然不同的世界。那时人们不必站得那么远,可以自由地参加社交聚会。那时的 JavaScript …… 和现在差不多?我们回到我开始学习 React 的那段时间,但最终却戛然而止。快进几年到今天。我又开始学习 React 了,但这次我会坚持下去。我会尽量指出我的错误以及第一次失败的原因。
简单介绍一下背景:我使用 Vue 已经有一段时间了,并且仍然对它非常满意。我是在用 Angular 2 做了一个项目之后才选择 Vue 的,但这个项目并没有真正坚持下来。由于 Vue 和 React 之间存在一些“竞争”,我倾向于维护 Vue,而不是学习并尝试改进 Vue 中可能存在的繁琐流程或模式。如果你也和 Vue 有同样的感受,希望这篇文章能给你一些启发。
激励机制
我第一次尝试 React 的时候,觉得 Vue 是上天赐予人类的礼物。用它做的所有事情都恰到好处,无需任何修改。但由于 React 如此流行,我想尝试一下,看看为什么这么多人用它来开发应用程序。我从这个教程
开始。一切都说得通,但我就是不喜欢所有东西组合在一起的方式。我记得我当时想“你为什么要那样做,在 Vue 中你可以这样做……”但这真的不是重点。软件开发中一个有趣的现象是,解决问题总是有多种方法。当你意识到这一点时,你就不会为自己的解决方案辩护,而是可以从别人的建议中学习。你可以学到很多东西。 显然,那天的情况并非如此。几天之后,我学习 React 的意愿消失了,我得到的答案证实了我的疑虑。Vue 就是更好。
一段时间过去了,我学到了一些东西,读了几本书,并在Bornfight找到了一份新工作。我被分配到Vue团队。我们之前有Vue团队,现在仍然有React团队。在完成了几个大项目之后,我们意识到在我们的JavaScript团队中使用一个前端框架而不是两个框架可能会更有优势。知识共享会更容易,我们也会有更专业的团队来处理新项目。我的同事建议我们应该使用React。我同意了,即使这意味着我必须学习React。React比Vue更有意义,因为它更容易招聘新人,而且这个库仍然像几年前一样受欢迎。
说实话,我对这个机会感到非常兴奋。这段时间我学到了很多,我相信这会对我大有裨益。这些年来,我开始欣赏其他方法,并意识到 Vue 和 React 之间并没有竞争,真的没有。例如,React 引入了 Hooks,Vue 在 Vue 3 中也采用了它。这两种解决方案各有利弊,你只需要权衡自己的需求,并据此选择合适的技术。凭借这些知识和健康的心态,我开始学习而不是评判。我学习 React 是有目的的,也是必要的。
流程
我学习 React 的方式基本相同。我学习的是同一个教程,但这次我同时学习了 React 和 Vue。比第一次学习时更深入的知识对我帮助很大。如果我不明白什么,我可以很容易地找到相关术语并在网上搜索解释。同时,我反思了一些自己的方法,并从中汲取灵感,提升了我的解决问题的能力。
看完教程后,我甚至觉得这还不够。我购买了这门课程并继续开发。为了巩固我的 React 基础,我还观看了以下两个教程:
正如你所见,我更倾向于视觉学习。我觉得除了观看视频和编写代码之外,我还能从中获得更多。但这并不意味着我没有仔细阅读过React Resources上的详细文档或一些精彩文章。当我第一次看到这个网站及其提供的内容时,我感到无比敬畏。它提供了丰富的资源,我诚挚地推荐这个网站,以及我提到的所有其他资源。
那一刻,我感觉自己已经准备好深入研究自己的项目了。我确信自己能避免大多数人犯的那些基本错误,而且我对要做什么已经有了很好的想法。而且,这可不是什么待办事项应用!
问题
在我看来,如果你心怀偏见,没有学习新事物的意愿,或者没有努力的目标,你就学不到什么。我第一次尝试学习 React 时,我想我完全符合以上所有条件。我太骄傲了,不愿承认自己做得不够好,我实在不愿意学习 React,再加上这些因素,我实在没有想要达到的最终目标。现在,我认为承认自己可以做得更好,并在必要的地方真正改进,并没有什么错。我太轻易放弃了,也没学到什么有用的东西。
如今,我仍然认为自己远未达到大师的水平,但我相信自己已经学到了很多关于 React 以及前端开发的知识。我仍在学习、阅读文章并参与 React 项目。我可能会继续这样做一段时间,希望我会像现在一样热爱它。提升代码和自我的方法数不胜数,这只是其中一种。我未来的计划包括开展一个个人项目。这并不复杂,但我喜欢读书,而这个项目将我一些最喜欢的东西融为一体。
我第一次遇到的一件事就是没有一位 React 经验丰富的人来帮助我。我本可以在众多平台上寻求帮助,肯定有人会帮忙,但我太害羞了,不敢这么做。现在,我从 Bornfight 的同事那里得到了我急需的帮助(以及 PR 评审)。我意识到这是多么宝贵,所以如果你对 React 有任何疑问,请随时给我发邮件,邮箱地址是davor.tvoric@bornfight.com。我无法提供太多帮助,但我可以尽力帮你找到解决方案,或者评审你编写的代码!
概括
总而言之,我想说你必须愿意亲自动手。你可以通过阅读文章或观看视频来学习,但真正的知识来自于从错误中汲取教训。阅读解决方案和亲自尝试实现它,两者的体验截然不同。即使是简单的事情,我也确信它值得去做,哪怕只是为了去做。
有人验证你的想法,并引导你朝着正确的方向前进,这对你会非常有帮助。
如果你和我的情况类似,可以尝试一下我之前提到的资源,也可以随时对我的个人项目发表评论。哪怕只是一点点帮助,只要它对我们双方都有利,何乐而不为呢?
感谢阅读,敬请期待下一篇文章,我将分别用 Vue 和 React 开发一个相同的(简单的)应用。我会比较它们之间的差异,并展示它们如何以各自的方式处理相同的问题!
文章来源:https://dev.to/bornfightcompany/my-journey-to-mastering-react-82n