前言

前端工作两年多。大部分前端原理、框架都能完全运用。工作中几乎遇不到解决不了的问题(除了那些恶心无法实现的需求)现在经常被安排去面试新人(被安排去面试,主要是工作能力比较突出的原因,公司还有很多3年以上的员工)。


下面说说我的学习方法或许对你有用!

一、打好基础不用说

HTML、CSS、JavaScript 三大件,完全掌握。不懂得就直接查 MDN。

HTML重点掌握语义化,区分块级和内联标签,其他查文档就好了,还有就是定义 head 里面一些meta 了解下。

CSS重点看盒子模型,定位,层级,过渡,动画和 transform。知道原理和规则。大部分工作都是照着设计稿化。

掌握上面几个 99% 还原也不难。接下来重点学习几种常见的布局。

完了之后去搞flex。最后搞下sass、less。基本就差不多了。

JavaScript。重点来了,红宝书看一遍掌握基础,进阶去看《你不知道的 JavaScript》。就这两套足够了,别搞那么多。

每个知识点搞懂。ES6 基本没啥问题。下面几个问题优先搞懂,优先级如下:

this 用法,相关原理原型/原型链闭包面向对象相关同步异步/回调/promise/async、await模块化 CommonJS, AMD先搞这懂这些比较难的概念,对你JS理解更加深入。接下来在开始看框架方面:

在前端领域混了这几年,总结了一套前端学习的精讲视频和学习路线,如果有对前端开发感兴趣的伙伴,不管你是想转行,或是大学生,还有工作中想提升自己能力的web前端党,欢迎大家的加入我的前端开发交流群:603985993 希望大家诚心交流!,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!也可以关注我的微信公众号:【前端留学生】 每天更新最新技术文章干货。

二、框架方面

前期要会用,后期要懂原理。

新人先搞 Vue。Vue 算是上手容易的框架。照着官方文档来问题不大。原理方面要提高自己认识。学习怎么看源码。github常去逛逛。

学习框架之前,我其实特别建议,新人先去了解 Babel 和 webpack 不仅仅是使用。一些原理方面的东西工作中也会用到。babel 里面会有教你如何编译代码。webpack 教你如和打包文件。自己手写编译器和打包工具也不是特别难。反正对之后看vue、react源码帮助挺大。

搞完 Vue 全家桶,去了解下 React,React hooks 学习下新的理念。再回过头来看Vue。你会发现他们是如此的相似去又不同。

多去实践总结,对整体框架理解会越来越深刻。

三、如何看源码

新人刚开始看源码,会陷入两个困境中。一是无从下手。二是看了之后感觉没啥收获。

这个也很正常。一般我们熟知的框架都有个几千甚至上万个PR。太大细节会干扰你。

掌握整个节奏和流程。学习原理也比较吃力。就连找个入口都像大海捞针一样。建议从下面几个方面入手:

1.挑简单的上手。别一开始就搞 vue、react、webpack。太难,会直接劝退新人。

不要为了面试而去读。反而效果不好,面试稍微问深入一点就答不出来了。平时有兴趣多琢磨琢磨。

按照难易程度:函数库 < 组件库 < 框架 < 工程化

分别典型代表lodash < vant < vue < webpack

2.手撸简易模型。像vue, webpack, babel 都有简易项目给你撸。有的创始人(尤哥)还直播手撸。国外的更多,youtube 一搜一大堆。就算不看源码,照着写出了简易 demo 对原理和理解提升都是很大的。

3.调试开源项目。先把项目拉下来。在vscode里面跑下,核心函数多打几个断点。看看里面变量是怎么diff的。对理解更深刻了。看了源码是别人的,学到了是自己的。学习时候边记笔记,边思考原理,总结经验。下面来谈谈前端工程化怎么弄。

四、前端工程化

现在最流行的打包工具 webpack 用起来。当然直接用 vue-cli2、vue-cli3、create-react 都是可以的。但是 webpack 相关还是得掌握。

首先重点搞下babel、webpack。

学习下编译和打包的原理。

自己配置下 webpack。尝试自己去写下下 webpack 的 loader 和 plugin。

学习这些之前要懂一点 node.js, node.js 不需要全部学习。一般就日常用到读写文件fs接口,path 路径接口。这些 api 都不难写几个 demo 就懂了。基本上webpack 里面配置文件也没用到多少 node 的东西。最后自己学会配置 webpack 的配置文件。

如果想深想去优化打包体积和速度,就需要去了解很多webpack插件。webpack 里面最核心的就是插件了。

当然前端工程化不仅仅是这些,CI/CD可持续集成, Umi 了解下。sh各种脚本自动化命令、代码生成技术了解下。

五、性能优化的方案

一般来说。性能优化没什么系统化的文档供人学习。完全靠一些经验和自己的实践。

我们常提到性能好坏是由什么来衡量呢?

访问页面地址 --> 页面首次加载数据 --> 渲染出完整页面的时长

非首次情况下,命中缓存的加载缓存数据 --> 渲染出完整页面的时长。

一般我从下面几个方面着手去做,一般问题都不大。

减小资源(静态资源,后端加载的数据)大小

压缩代码HTML/CSS/JS压缩图片、音视频大小Tree-Sharking 消除无用代码以上webpack都可以搞定避免同一时间的过多次数请求

CSS 实现雪碧图:使用background-position共享一张图图片懒加载:监听滚动后offsetTop, 使用data-src 替换 src(真实路径)列表懒加载(分批加载):监听滚动后offsetTop, 发送请求加载下一页的数据路由懒加载代码分包分块加载(webpack)预加载技术小程序分包、预下载等。利用缓存(空间换时间)

CDN 内容分发:获取更近网络节点缓存下来的静态资源 浏览器缓存(自带) 部分资源保存在LocalStorage或者APP缓存中(手动操作)

其他

SSR 服务端渲染:解决SPA框架带来JS动态渲染页面带来的延迟和白屏问题。

这些都可以去实践的,难度不大。

难度大的地方可能是 dom 节点成千上万的时候渲染的性能问题。

这个场景遇到的很少,方案很多。不同人有不同解决方案,有功夫可以自己去尝试尝试。

上面提到很多点都可以深入到很深。由于篇幅原因,点到即止。纯粹是把一些我以前走过的弯路掰直了再分享给大家。

如果深入学习前端,大佬给你总结了几个技巧!相关推荐

  1. 前端必看的8个HTML+CSS技巧

    点赞是动力 ??,关注是支持 ??! 建议.疑问.话题欢迎在评论区留言哦! CSS是一个很独特的语言.看起来非常简单,但是某种特殊效果看似简单,实现起来就颇有难度.这篇文章主要是给在学习前端的童鞋分享 ...

  2. 5年经验前端大佬在线收徒了.... 如何学习前端, 前端开发中的疑惑,进阶指南

    时至今日,已经参见工作5年多了啦,这期间也曾迷茫过,也曾孤独地在深夜流泪. 特别是刚出来工作那一会,没人什么朋友,钱赚的少不说,每天压力也很大,记得当初住的房子是一家旅店.住在5楼,隔壁是一对上夜班的 ...

  3. 推荐 12 个学习前端必备的神仙级工具类项目与网站

    大家好,我是你们的 猫哥,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 猫哥是一个常年混迹在 GitHub 上的猫星人,所以发现了不少好的前端开源项目.常用技巧,在此分享给大家. 公众号:前端Git ...

  4. 如何高效学习前端新知识,我推荐这些~

    众所周知,关注公众号可以了解学习掌握技术方向,学习优质好文,落实到自己项目中.还可以结交圈内好友,让自己融入到积极上进的技术氛围,促进自己的技术提升. 话不多说,推荐这些优质前端公众号 前端之神 10 ...

  5. 真诚推荐7个能助你成长的前端大佬

    不得不说,如今比前些年学习资料多很多了. 现在的前端公众号也挺多的,这里推荐几个前端大佬运营的公众号,都是聚焦前端垂直领域的优质公众号,关注这些公众号至少可以: 1.了解现在前端技术发展情况和未来发展 ...

  6. 推荐几个干货超多助你成长的前端大佬

    不得不说,如今比前些年学习资料多很多了. 现在的前端公众号也挺多的,这里推荐几个前端大佬运营的公众号,都是聚焦前端垂直领域的优质公众号,关注这些公众号至少可以: 1.了解现在前端技术发展情况和未来发展 ...

  7. 新手如何入门学习前端?

    Web前端入门的自学路线 新手入门前端,需要学习的基础内容有很多,如下. 一.HTML.CSS基础.JavaScript语法基础.学完基础后,可以仿照电商网站(例如京东.小米)做首页的布局. 二.Ja ...

  8. 前端大佬谈国产开源:VUE 的成功在于社区运营

    喜欢就关注我们吧! 近日,国内首个开源软件基金会 -- 开放原子基金会在深圳国际开源谷举办了 TOC 圆桌论坛.论坛上,基金会 TOC 之一.国内知名前端大佬贺师俊表达了一些有趣的观点,阐述了自己对于 ...

  9. 0基础学习前端开发,高职web前端开发技能大赛

    零基础学web前端开发要怎么去学? 首先要学习的就是基础知识:html.css和JavaScript.HTML是内容,CSS是表现,JavaScript是行为.前端开发的门槛其实非常低,与服务器端语言 ...

  10. 整理一下个人学习前端的网站

    我个人学习前端的网站有哪些 一 .从小白开始学习的基础视频 1.学习html和css,还有js基础视频: (1) https://www.bilibili.com/video/av71997881fr ...

最新文章

  1. 2000+引用的fastp推出重磅更新,再提速一倍!
  2. 再谈 BigInteger - 使用快速傅里叶变换
  3. python 全局_全局关键字,带Python示例
  4. 瑞士:冰川融化 阿尔卑斯部分山体面临坍塌
  5. 反应堆模式最牛的那篇论文--由solidmango执笔翻译
  6. python机器学习库sklearn——支持向量机svm
  7. 190703每日一句
  8. 银监会再出新规!银行数据治理与监管评级挂钩
  9. 易筋SpringBoot 2.1 | 第三十六篇:Spring Boot RestTemplate超时配置示例
  10. python微信小程序抢购教程_微信小程序系统教程[高级阶段]——python版电商系统...
  11. linux系统声音管理,Mplayer 音量控制详解
  12. 口诀计算机,PID算法的通俗讲解及调节口诀[计算机类]
  13. python循环n次_如何使循环重复n次-Python 3
  14. r 选取从小到大的数据_R语言第二章数据处理⑥dplyr包(1)列选取
  15. jboss启动oracle表不存在,JBoss的部署及运行
  16. P2394 yyy loves Chemistry I
  17. nodejs卸载安装
  18. Linux C++ 海康 设备 直连抓图 和 平台抓图代码~
  19. ARM架构与编程--基于STM32F103 (1)LED原理图
  20. bootstrap表单验证

热门文章

  1. ajax提示弹出dev,windows git pull或者push代码时弹出安全框解决办法
  2. oracle除了什么之外,Oracle翻译
  3. 用 Python 描述 Cookie 和 Session
  4. CentOS7.x Hadoop集群搭建
  5. 从Oracle向PPAS移行不成功时的处理
  6. XenApp/XenDesktop 7.11 对于HDX 3D pro的2点增强
  7. 分模块的maven项目调试时报Source not found的解决办法
  8. SQL Server 2012 显式授权示例
  9. 【转】Go Micro(2)——微服务工具箱
  10. CentOS7.2安装jdk7u80