现如今技术更新飞快,各种框架、工具、语言更是层出不穷。特别是前端技术,三五年基本就更新换代一轮了。经常听到开发小伙伴们一边感叹「学不动了」,一边又在不断追逐这些新技术。毕竟,如果不想被这个时代淘汰,就得不停地更新自己的知识体系,不停地「卷起来」。但一个人的精力是有限的,很难学完所有新技术。于是,有的人就开始焦虑了......

跟风

一个新技术火了,我要不要去学习一下?我曾经也经常问自己这个问题。当然,追求新技术肯定是好事,但是什么东西火就马上学什么,最后的结果却不一定比原地踏步强。

因为这样可能会造成浪费,把精力花到一些用不到的技术上。就跟追求新款手机一样,只要出新款就立马把旧的换掉,如果确实有钱任性,那没关系随便换,如果钱不太多那咱还是得省着点花。学习新技术也是这样,如果自己的精力有限,那么满足需求即可。

一个技术火不火不应该成为我们学习它的理由,顶多是给我们的选择列表中增加了一个选项,当我们有需求时,再去学也不迟。

过时了

有的技术,用着用着就过时了。曾几何时,Redux 刚出世的时候也是风光无限,一度成为 React 项目的标配。但是,现在在项目中用 Redux 可能会被骂「辣鸡」。我记得有一次我们 JS 群里炸翻了,大家在里面吐槽了 Redux 好久。

没错,Redux 使用起来的确有很多问题,大量模板代码、写起来很繁琐、容易让状态和视图关系混乱、使组件变得难以复用、很容易写出烂代码等等。但是,Redux 过时之后,真的就变得一无是处了么?我认为不是。即便 Redux 已经过时,它带来的思想和解决问题的方式,我们仍然可以借鉴。比如 Redux 解决了 React 跨组件共享状态困难的问题,使用者可以通过订阅 Store 的变化从而更新 UI,最早为客户端引入了 middleware 机制等等。

有了这些基础,我们便能很快通过 React Context API 和 RxJS 打造一个更好用的全局状态管理工具。但是,如果你只是会用几个 Redux 的 API,并没有理解 Redux 的理念和它解决的问题,那么当浪潮退去,你可能什么也留不下。

工具是一时的,理念是长远的。

老药新用

有的技术过时了,有的技术又「死灰复燃」了。
最早 JSP 时代,我们用服务端渲染,后面因为 AJAX 的出现,促使前后端分离,SPA 便开始盛行。但是,随着对 SEO 和首屏加载性能的需求提升,我们又开始转向服务端渲染。SSR 摇身一变,成了我们口中的「新」技术,只不过实现方式发生了一些变化。

同样地,还有 CSS In JS,最早的时候我们将 CSS 和 JS 写到一起,再后来又提倡将样式和表现分离,因为当时我们期望改动样式的时候不要改动到逻辑。但是,随着前端交互的复杂度越来越高,我们需要通过组件化的方式来组织代码,通过复用组件的方式来复用样式,因此将 CSS 和 JS 放到一起又变成了新的潮流。

时代在变,新与旧也在变。

确定方向

追求新技术的同时,学习底层技术也十分重要。我们都知道「底层技术学懂了上层技术也就容易了」。话是这样没错,但是底层技术有很多,到底学什么才是最合适的?
我们需要先确定自己的方向。如果你的目标是学习 React,那么计算机网络、操作系统这样的底层技术可能对你帮助不大,但 DOM 和浏览器渲染原理可能会让你更深入地理解 React 的设计和原理。

虽然底层技术很重要,但是既然一口气吃不成个大胖子,我们就需要根据自己的方向来排个优先级,逐步积累和沉淀。

触类旁通

当你精通一门技术之后,这门技术能够帮你快速迁移到其它技术。
比如,作为 React 开发者,突然想学习 Flutter,你将在 Flutter 中看到在 React 中司空见惯的东西,生命周期,全局状态管理,Context,甚至还有 Hook Widget。

写在最后

新技术还是要继续学的,只不过我们需要先找准自己的方向,然后将重心放在自己的方向上,通过扩展相关的底层技术持续沉淀自己,在此基础上再去学习一些新技术,可能会让自己变得更加游刃有余。
最后,与其跟随潮流,不如自己创造潮流。如果有机会,可以自己创造或参与一些在开源项目,说不定哪天就引领潮流了。

本文由mdnice多平台发布


橘子小睿
665 声望75 粉丝

前端开发者