如何看待现在使用日益频繁的各种前端框架?

现在我们使用的各种框架,比如VUE、element、LayUI…,前端开发模块化组件化,这是一种技术层面的进步吗?框架设计的原理是啥样的呢?初学者要不要熟悉这些框架呢?

2赞

好问题!@ TechQuery 可以在周末直播时统一问答哦~

好的谢谢!

框架常常更新,初学者还是先学好原生 JS 吧,把基础打扎实,然后求职的时候针对岗位需求 专门学一个框架也不迟

这里有 3 个问题。
先说第 1 个问题,第 1 个问题里其实蕴含了另一个问题,就是怎么理解“进步”呢?如果把“进步”理解为性能的提升(内存使用降低、运行速度变快),那框架通常不会带来性能的提升。框架的作用主要是提升开发效率,其实就是让开发者做一些常用的功能的时候不用自己写很多的代码,可以直接用现成的代码。
这里我还想展开一下,第 1 个问题里说的 3 个框架性质不完全是一样的。我们可以把现在常见的框架分成 5 类:

  1. 对 Web API 的封装:jQuery、Zepto 等
  2. 对常用组件的 CSS 的封装:Bootstrap、Semantic UI 等
  3. 第 1 和第 2 类的综合:LayUI
  4. MVVM 框架:React、Vue、Angular 等
  5. 基于某个 MVVM 的组件库:AntD、Element UI 等

第 2 点和第 5 点中说的常用组件是指:主题配色更统一、更美观的按钮、列表、侧边栏、输入框、Popup、模态框(Modal),以及响应式的栅格布局等等。

MVVM 框架比起 jQuery 这种仅仅对 Web API 封装的框架的进步在于,MVVM 框架使开发者可以专注于业务数据和业务逻辑本身,而不需要考虑数据与 UI 之间的绑定的逻辑。

3赞

然后说第 3 个问题。我是推荐初学者应该在学习并能比较熟练地运用 HTML、CSS、JavaScript 之后,就 / 才开始学习使用这些框架的。因为如果还没学好 HTML、CSS、JavaScript 的时候,学习这些框架是有困难的。而在实际的开发中基本上都会用到这些框架,所以我推荐学好 HTML、CSS、JavaScript 之后就开始学习使用这些框架,不然你在实际工作中就会看不懂现有的代码,或者会降低你的开发效率。

再倒回来第 2 个问题。我推荐大家在学习好这些框架的使用之后,就 / 才研究学习这些框架的实现原理。如果还不会使用这些框架,我觉得是不好理解它们的原理的。学习了这些框架的使用之后,研究学习它们的实现原理,对你对 JavaScript、Web API、网页的性能优化等等的理解是有很大帮助的,而且它们的实现原理也是中高级 Web 前端岗位的常见面试主题。

3赞

谢谢!

懂了,一开始就用框架debug很困难