如今,技术更新换代日新月异,各种框架、工具、语言层出不穷。尤其是前端技术,基本上三五年就更新换代了。经常听到开发小伙伴在不断追逐这些新技术的同时感叹“我学不会了”。毕竟,不想被这个时代淘汰,就得不断更新自己的知识体系,不断“滚”起来。但是一个人的精力是有限的,很难学会所有的新技术。于是,有人着急了……一项新技术火了,要不要学?我曾经经常问自己这个问题。当然,追求新技术肯定是好事,但是马上学流行的东西,最后的结果不一定比原地踏步更好。因为这可能会造成浪费,把精力花在一些没有用到的技术上。就像追求新手机一样,一有新机型出来,就立刻换掉旧的。真有钱任性,那随便换也无妨。如果你没有太多的钱,那我们还是要存点钱的。学习新技术也是如此。如果你的精力有限,你可以满足你的需要。一项技术热不热不应该成为我们学习它的理由。最多,它会在我们的选择列表中添加一个选项。当我们有需要时,学习它还为时不晚。过时一些技术在使用后变得过时。曾几何时,Redux刚诞生的时候,也是非常漂亮的,一度成为React项目的标配。但是,现在在项目中使用Redux可能会被称为“辣子鸡”。记得有一次我们JS组炸了,大家吐槽Redux好久。没错,Redux在使用中确实存在很多问题,模板代码多,写起来麻烦,状态和视图关系容易混淆,组件难以复用,容易写出烂代码等等。然而,Redux过时之后,真的就没用了吗?我不这么认为。即使Redux已经过时,我们仍然可以借鉴它带来的思想和解决问题的方法。例如,Redux解决了React跨组件共享困难的问题。用户可以通过订阅商店中的更改来更新UI。首先介绍了客户端的中间件机制等。有了这些基础,我们可以通过ReactContextAPI和RxJS快速创建一个更好的全局状态管理工具。但是,如果你只使用了几个ReduxAPI,不了解Redux的概念和它解决的问题,那么当潮水退去的时候,你可能就什么也留不下了。工具是暂时的,想法是长期的。有些技术已经过时,有些技术又“复活”了。在最早的JSP时代,我们使用的是服务端渲染。后来因为AJAX的出现,前后端分离,SPA流行起来。然而,随着对SEO和首屏性能的需求增加,我们再次转向服务器端渲染。SSR已经转变为我们所说的“新”技术,但实现方式发生了一些变化。同样,JS中也有CSS。最早的时候我们是把CSS和JS写在一起,后来提倡风格和表现分离,因为那个时候我们期望的是改变风格而不改变逻辑。但是随着前端交互的复杂度越来越高,我们需要以组件化的方式来组织代码,通过复用组件来复用样式,所以把CSS和JS放在一起成为了一种新的趋势。时代变迁,新旧交替。在确定追求新技术的方向的同时,学习底层技术也很重要。我们都知道“学了底层技术,就很容易理解上层技术”。确实如此,但是底层技术有很多,最适合学什么?我们需要先确定自己的方向。如果你的目标是学习React,那么计算机网络、操作系统等底层技术可能对你帮助不大,但DOM和浏览器渲染原理可能会让你更深入地了解React的设计和原理。虽然底层技术很重要,但我们不可能一口气变成大胖子,所以需要根据自己的方向分清轻重缓急,逐步积累沉淀。以此类推,当你精通一项技术时,这项技术可以帮助你快速迁移到其他技术上。比如作为React开发者,突然想学Flutter,你会在Flutter中看到React常用的东西,比如生命周期,全局状态管理,Context,甚至HookWidget。最后还是要继续学习新技术,但是我们需要先找到自己的方向,然后围绕自己的方向,通过扩展相关的底层技术不断积累自己,然后在此基础上再学习一些新的技术可能会让你更舒服。最后,与其追随潮流,不如自己创造潮流。如果有机会,你可以自己创建或参与一些开源项目,说不定有一天你会引领潮流。本文由mdnice多平台发布
