2015-2016前端知識體系圖譜
總結下這兩年前端須要的一下必備知識體系,一部分深刻挖掘過總結了一下,有些還沒來得及研究,也列出來了,分享一下~[轉]
獲取原圖javascript
博客原地址css
1、框架與組件
bootstrap等UI框架設計與實現
- 基礎UI樣式:元素reset、按鈕、圖片、菜單、表單
- 組件UI樣式:按鈕組、字體圖標、下拉菜單、輸入框組、導航組、麪包屑、分頁、標籤、輪播、彈出框、列表、多媒體、警告
- 響應式佈局:佈局、結構、樣式、媒體、javascript響應式
jQuery、zepto使用原理以及插件開發
- $.fn.method = function(){}
mvc/mvvm框架原理設計,vue/angular/avalon等
- directive設計:html、text、class、html、attr、repeat、ref,可擴展
- filter設計:bool、upperCase、lowerCase,可擴展
- viewmodel結構設計:例如數據,元素,方法的掛載與做用域
- 數據更變檢測:函數觸發,髒數據檢測、對象hijacking
polymer/angular2思想與設計思路
reactjs原理與使用
commonJS/AMD/CMD
- UMD解決不一樣規範兼容性的問題,例如webpack封裝
loadJs模塊化加載原理與實現
polyfill、shim原理與實現
- polyfill提供了開發者們但願瀏覽器原生提供支持的功能特性
- shim將新的API引入到舊的環境中,且僅靠舊環境中已有的手段實現
virtual Dom、Incremental DOM
- 1.用js對象樹表示dom樹結構,根據該對象樹構建dom樹
- 2.狀態改變時,從新構建對象,和舊的對象對比,記錄兩個對象樹差別
- 小結:js對象模擬dom(elem.js),virtual dom diff算法(diff.js)、差別渲染dom(patch.js)
- incremental dom在狀態改變時掃描舊對象樹將差別直接應用到dom中
shadow dom
webwork與service Worker
ES6轉ES五、Babel與ES6開發規範體系
Isomorphic JavaScript
- reactjs同構:React + Flux + Koa
雙向數據綁定
browserify運行原理
- 5.包裝每一個模塊(傳入依賴字典以及export和require函數),生成執行的js
組件UI與js組件規範化
immutable JavaScript
generator與promise原理與使用
2、構建生態
grunt/gulp開發環境任務編寫
- 文件處理插件:html、scss、js、image、font、其它
npm、jspm、bower包管理工具
r.js、browserify、webpack、webpack 二、Rollup打包工具使用
- webpack支持更多的規範打包,AMD,Commonjs
- webpack+babel/reactjs+reflux
fis3構建與插件開發、構建環境、fis3構建離線包
web Component:rosetta-org、x-view、Q、riot、nova
brunch構建工具
3、開發技巧與調試
fiddler加willow基礎組合調試
werien、vorlonjs遠程調試,chrome inspect
mockjs,F.M.S(Front Mock Server)模擬調試使用與cgi自動調試
macha/phantomjs/casperjs/karma測試自動化任務使用
自動化UI測試,海豚
node-supervior、node-inspector、karma
開發發佈系統流程
sublime高效插件
- emmet工具使用、 sublimelinter、 babel snippets、 sublimeLint、 SassBeautify 、 emmet 快速編輯、 jsxlint、 SideBarEnhancements、 SnippetsMaker、 SublimeCodeIntel、 css snippets、 ColorPicker、 html/css/js Pretty、 SpinnetMacker、 DocBlockr、 MultiEditUtils、 javascript & node spinnet、 JavaScript & NodeJS Snippets、 jsLint、cssLint
代碼自動化檢查fecs
4、html、css與重構
jpeg、webp、apng、bpg圖片
iconfont使用與實現原理
- fonthello、fontawesome、icomoon.io、iconfont.cn線上工具
頁面響應式設計
css重置
sass/compass/less/postcss經常使用語法與使用
em,rem原理與實現
- rem計算:width*retina/10,至關於屏幕寬度爲10rem
code4ui、code4app、初頁、maka等
- 根據config配置使用r.js或webpack打包
css3動畫
css網格佈局
搜索引擎與前端SEO
瀏覽器緩存種類,resources,webSQL,indexDB, localstorage,cookie,app cache,cache storage
UI框架
- bootstrap、jqwidgets、semantic ui、amaze ui
- 微信手Q ui: frozenui、weui、blend ui
5、native/hybrid/桌面開發
ionic移動開發方案
nativescript移動開發方案
react Native移動開發方案
android/ios原生開發與框架
桌面應用開發
6、前端/H5優化(另外一個圖已給出)
yslow、pagespeed
移動web性能優化
7、全棧/全端開發
express/node club + mongodb、thinkjs等框架
node.js直出
實時web開發,meteor/express.io
MEAN(mongodb/express/angular/nodejs)
http與http2協議、bigpipe、pipeline
離線緩存,cookie、localstorage、indexdb
cdn與dns
8、研究實驗
WebAssembly、webTRC、typescript
Material design規範的前端框架
AMP-HTML規範
- 使用受限HTML以及緩存技術來提升移動網絡中靜態內容的性能
- 添加自定義的元素代替禁用掉的元素:amp-audio, amp-img、amp-video等
9、數據分析與監控
badjs數據上報
- 捕獲錯誤兩種方法:onerror、try-catch。抽樣上報,先onerror統計語法錯誤,若是是script error,再使用tryjs。
- onerror:能夠捕捉語法錯誤和運行時錯誤;能夠拿到出錯的信息,堆棧,出錯文件、行號、列號;當前頁面執行的js腳本出錯都會捕捉到;跨域的資源須要特殊頭部支持。
- try-catch:沒法捕捉語法錯誤,只能捕捉運行時錯誤;能夠拿到出錯的信息,堆棧,出錯文件、行號、列號;須要藉助工具把function塊以及文件塊加入try,catch,能夠在這個階段打入更多的靜態信息。
點擊熱力圖clickHeat、heatMap
js加載失敗優化方案
百度alog數據上報
10、其它軟技能
axure 原型圖設計
xmind腦圖管理
效率管理
can i use、github
知識管理/總結分享
產品思惟與技能
11、前端技術網站
技術社區
- w3c tech、w3c plus、w3 help
行業會議
歡迎關注本站公眾號,獲取更多信息