总结
秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!
而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。
这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)!
资料截图 :
高级前端工程师必备资料包
=================================================================
一、百花齐放的前端框架
以前,最火的前端框架是 jQuery,后来又出现了 Dojo、Ember、Backbone、RequireJS、Angular、Vue、React… 一大堆框架。
目前,大家能在市面上看到的前端框架依然还有很多。
在这个发展过程中,框架的规模和体积也在不断的增大,最老的 prototype.js 和 mootools,都只有几千行 JS 代码,压缩之后的体积也只有 10k 左右。
但到现在,动辄几百K,而且还要和其他工具/全家桶一起使用。整个算下来起码有个几兆,几十兆的样子。
但是你有没有思考过一个问题:在纷繁缭乱的表象背后,隐藏着简单的规律。实际上,市面上所有的前端框架都在解决两个大问题:【组件化】和【模块化】。
===================================================================
二、共同问题一:如何实现组件化?
组件化有两个好处:
-
1.功能封装
-
2.跨项目复用
所有框架,无论使用什么语言来实现,都有一些基本的问题需要解决。
如何设计组件的生命周期?
如你所知,前端的特点是带有 UI 界面的,是需要跟用户直接交互的东西。
因此,你必须为这些 UI 组件设计完善的生命周期,从远古的 Java Swing 到 QT,一直到 jQuery UI、Angular、React,大家都设计了自己的生命周期机制。
虽然技术细节有差异,但是基本的结构是类似的,都需要经历几个基本的阶段:初始化、渲染、存活期、销毁。请看图示:
请注意,所有 UI 组件几乎都是这样设计的,怎么样,还需要去强记那些内容吗?
组件之间如何通讯?
OK,无论什么 UI 框架,有了 UI 组件之后,紧接着就需要解决组件间通讯的问题。
你只要能解决以下 3 种情况就能解决绝大部分的问题了;父子间如何通讯?兄弟间如何通讯?远方亲戚之间如何通讯?
如论哪种框架,典型的解决方案有 3 种:父子之前通过事件或者直接调用进行通讯;兄弟、远房亲戚之间利用事件总线进行通讯、利用 cookie、localstorage、甚至是服务端 session 进行通讯。
如何管理组件的状态?
UI 组件不仅仅有外观,外观只是一张画皮,里面要有数据才行,既然有数据,就要有状态管理的问题。
在状态管理这块,需要仔细设计这些问题:是否需要双向绑定?如何配合路由保持组件状态?
组件样式怎么做?
因为是前端框架,所以美观的问题也不能放松。所幸的是,在移动互联网时代,用户都已经习惯了“扁平化”、“极简主义”这些设计风格,我们可以利用市面上现有的 CSS 样式库来给我们的组件“化妆”,常用的有这些:
Bootstrap、Element UI、Ant Design
三、共同问题二:如何实现模块化?
如你所知,在 Java 里面,我们有完善的 Class/Package/Jar/ClassLoader 这些机制的支持。当 JVM 发现所需要的 .class 文件没有加载的时候,它自己会使用 ClassLoader 去加载,不需要程序员自己操心。
但是在 JS 里面不行,由于 JavaScript 这门语言本身的缺陷,它没有提供完善的模块化支持,这就导致了所有前端框架必须自己解决模块化的问题。
总结
秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!
而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。
这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
资料截图 :
高级前端工程师必备资料包