最近知乎收到一些问题,问前端学起来吃力,连续更新几次回答的比较全了。现在整理下分享给博客的小伙伴们。

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

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

一、打好基础不用说
HTML、CSS、JavaScript 三大件,完全掌握。不懂得就直接查 MDN。
HTML重点掌握语义化。区分块级和内联标签。其他查文档就好了。还有就是定义 head 里面一些meta 了解下。
CSS。重点看盒子模型,定位,层级,过渡,动画和 transform。知道原理和规则。大部分工作都是照着设计稿化。掌握上面几个 99% 还原也不难。接下来重点学习几种常见的布局。完了之后去搞flex。最后搞下sass、less。基本就差不多了。
JavaScript。重点来了,红宝书看一遍掌握基础,进阶去看《你不知道的 JavaScript》。就这两套足够了,别搞那么多。
每个知识点搞懂。ES6 基本没啥问题。下面几个问题优先搞懂,优先级如下:
this 用法,相关原理
原型/原型链
闭包
面向对象相关
同步异步/回调/promise/async、await
模块化 CommonJS, AMD
先搞这懂这些比较难的概念,对你JS理解更加深入。接下来在开始看框架方面:
二、框架方面
前期要会用,后期要懂原理。
新人先搞 Vue。Vue 算是上手容易的框架。照着官方文档来问题不大。原理方面要提高自己认识。学习怎么看源码。github常去逛逛。
学习框架之前,我其实特别建议,新人先去了解 Babel 和 webpack 不仅仅是使用。一些原理方面的东西工作中也会用到。babel 里面会有教你如何编译代码。webpack 教你如和打包文件。自己手写编译器和打包工具也不是特别难。反正对之后看vue、react源码帮助挺大。
搞完 Vue 全家桶,去了解下 React,React hooks 学习下新的理念。再回过头来看Vue。你会发现他们是如此的相似去又不同。 多去实践总结,对整体框架理解会越来越深刻。
三、如何看源码
新人刚开始看源码,会陷入两个困境中。一是无从下手。二是看了之后感觉没啥收获。
这个也很正常。一般我们熟知的框架都有个几千甚至上万个PR。太大细节会干扰你。掌握整个节奏和流程。学习原理也比较吃力。就连找个入口都像大海捞针一样。
建议从下面几个方面入手:
挑简单的上手。别一开始就搞 vue、react、webpack。太难,会直接劝退新人。
不要为了面试而去读。反而效果不好,面试稍微问深入一点就答不出来了。平时有兴趣多琢磨琢磨。按照难易程度,函数库 < 组件库 < 框架 < 工程化 分别典型代表 lodash < vant < vue < webpack
手撸简易模型。像vue, webpack, babel 都有简易项目给你撸。有的创始人(尤哥)还直播手撸。国外的更多,youtube 一搜一大堆。就算不看源码,照着写出了简易 demo 对原理和理解提升都是很大的。
调试开源项目。先把项目拉下来。在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各种脚本自动化命令、代码生成技术了解下。

前端学起来特别吃力,新人入前端怎么学?相关推荐

  1. vue怎么插入接口demo_前端学起来特别吃力,新人入前端怎么学?

    最近知乎收到一些问题,问前端学起来吃力,连续更新几次回答的比较全了.现在整理下分享给掘金的小伙伴们. 原知乎问题: 前言 前端工作两年多.大部分前端原理.框架都能完全运用.工作中几乎遇不到解决不了的问 ...

  2. 针对WEB前端新人的前端知识体系

    现在谈到WEB前端的技术结构.知识体系,都会搞出一个非常大.枝叶非常多且细的相当宏大的思维导图,就像这种的,这种大而全的图示对新人来讲,太大了,不好掌握,而且容易在其中迷失.我想今天和大家谈一下针对新 ...

  3. eclipese web前端开发教学_Web前端零基础好学吗?新手该怎么学?

    众所周知,Web前端是现在很火的行业,找工作的人也多,招聘的公司也多,工作环境也好,各招聘公司给的工资也高,这么火热的行业还是供不应求. Web前端市场的供不应求直接导致前端工程师的待遇提高,另外一方 ...

  4. Web前端就业薪资是多少?Web前端要学什么?

    Web前端开发作为实现前台页面展示的主要技术手段,已经越来越被大众所熟知,很多人也因此对Web前端产生了兴趣,萌生了想要学习Web前端的想法.那,Web前端就业薪资是多少?Web前端要学什么?今天,小 ...

  5. 零基础不建议学前端_web前端开发零基础怎样入门-哈尔滨前端学习

    web前端开发零基础怎样入门-哈尔滨前端学习,俗话说,知己知彼,百战百胜.要想学好web前端,首先要了解什么是web前端,下面由小编来给大家介绍一下: 1什么是web? Web就是在Http协议基础之 ...

  6. 新手前端练手网站_编程到底难不难学?新手入门选择哪种语言好?

    以下内容适合的读者:想要学习编程的小白 一.编程到底难不难学? 对于这个问题我的回答是不知道,学会了编程的人会说好学,中途就放弃的人会说很难,任何知识想要掌握好都不是一件容易的事情.所以我决定用自己的 ...

  7. 学不动的前端人,该如何跟上前端技术的发展

    总有前端同学问我,前端技术更新太快,学不动了啊,有什么好办法? 说实话,除了学,还真没啥办法. 回看2018年,微信小程序就不说了.支付宝小程序.百度小程序还来凑热闹.React Native.Flu ...

  8. php做前端可以不用js吗,2019,还要不要学前端?

    前端现正处于一个高速发展的时代.我们站在2019年的节点上,回望前端的发展,在过去十年中,前端从最初的HTML,CSS,JavaScript三把刷子做出来静态网页的时代,发展到现在视觉效果酷炫,适用于 ...

  9. 谈谈FrozenUI前端框架(应用心得) - 入坑篇

    FrozenUI框架,是一个相对比较纯粹的css类框架,只适合小项目的样式开发:官方并没有太多,甚至可以说没有提供任何js相关的功能性包,所以个人不推荐开发者使用. 官方宣称: FrozenUI 是一 ...

最新文章

  1. 数字图像处理:第二十章 视频编码与压缩
  2. ue编辑器拖拽上传图片_为百度UE编辑器上传图片添加水印功能
  3. 初读JavaScript DOM编程艺术(一)
  4. DDD(领域驱动设计)系列之一-DomainPrimitive
  5. Linux下.o,.so,.a,.la文件
  6. java 读取栅格,提取两个重叠栅格的数据
  7. sublim插件(待续)
  8. 从单张图重建三维人体模型综述(五)
  9. IOS设备之armv6,armv7,armv7s,arm64
  10. 腾讯电子签小程序就能开收据了
  11. matlab语音信号处理/滤波器降噪/时域频域、归一化图谱
  12. [渝粤教育] 三江学院 财务管理 参考 资料
  13. 隐私政策说明 - 掌上软考答题速记系统
  14. 《嵌入式应用开发》实验一、开发环境搭建与布局
  15. Git提交记住用户名和密码
  16. 我的世界自定义服务器维护,[机制|娱乐]FixItem —— 良心铁匠铺,高自定义性,让你的玩家常驻服务器[理论全版本]...
  17. 为什么 Proxy 一定要配合 Reflect 使用?
  18. H5网页跳转至微信小程序
  19. K2L:工业和汽车网络通信设备的开发工具
  20. 秒杀大促-淘宝用缓存实现方式

热门文章

  1. 你和你的女神之间,差了一个OpenCV口红色号识别器,android开发环境的搭建步骤
  2. 【博学谷学习记录】超强总结,用心分享 | JavaString类知识要点总结
  3. DragonBones骨骼动画制作软件
  4. L1-049 天梯赛座位分配 (20分)
  5. 16S OTU物种注释
  6. 一文详解车道线检测技术分析
  7. 翁恺 python_翁恺 - 主页
  8. linux中多个if嵌套使用方法,Objective-C嵌套if语句
  9. 写一个商品类Goods,属性有商品编号,商品名称,商品价格和上架时间。
  10. java 自定义 jpanel_在JList中使用自定义JPanel组件 - java