前端開發(fā)網(wǎng)站需要多長(zhǎng)時(shí)間,專業(yè)的學(xué)習(xí)路徑是怎么樣的?
程序員也有鄙視鏈,后端開發(fā)程序員普遍看不上前端,原因是前端入門真的太簡(jiǎn)單了。就html、css、簡(jiǎn)單的JavaScript,認(rèn)真學(xué)一天也能做個(gè)簡(jiǎn)單的網(wǎng)頁(yè)來(lái)。
但是想要做好卻并不簡(jiǎn)單,前端的學(xué)習(xí)路線有點(diǎn)陡峭,到后期要對(duì)各種細(xì)節(jié)問(wèn)題進(jìn)行探究、優(yōu)化,所以如果想要做好,那也不簡(jiǎn)單,關(guān)鍵還在于得多下功夫。
學(xué)習(xí)路線:
1、HTML、CSS、JavaScript語(yǔ)法基礎(chǔ)。學(xué)完基礎(chǔ)后,可以仿照電商網(wǎng)站(例如京東、小米)做首頁(yè)的布局。
2、JavaScript語(yǔ)法進(jìn)階。作用域和閉包、this和對(duì)象原型等。前端的有很大一部分都在JavaScript與DOM上面了。JS目前來(lái)說(shuō)在開發(fā)崗位算是最“萬(wàn)能”的語(yǔ)言,前后端通吃。我曾經(jīng)有個(gè)項(xiàng)目中就是用JS技術(shù)棧開發(fā)一個(gè)完整的系統(tǒng),整個(gè)項(xiàng)目不管是運(yùn)行在服務(wù)器端的程序還是運(yùn)行在PC端的程序,基本上都是JS寫的。JS很重要、JS很重要、JS很重要(重要的事情說(shuō)三遍)。
3、Xpath、Ajax、jQuery等。
4、移動(dòng)Web開發(fā)、Bootstrap等。要注意移動(dòng)開發(fā)中的適配和兼容性問(wèn)題。
5、前端框架:
Node.js,nodejs不一定得學(xué)會(huì),但是npm包管理一定要清楚,因?yàn)橐恍┐笮偷那岸隧?xiàng)目會(huì)有一堆包。
Vue.js和React,這兩個(gè)框架必須要熟練一個(gè)。建議先學(xué)Vue.js,上手相對(duì)容易。同時(shí)掌握 Vue 和 React 才是合格的前端同學(xué)。
6、自動(dòng)化工具:構(gòu)建工具 Webpack、構(gòu)建工具 gulp、CSS 預(yù)處理器 Sass 等。
7、網(wǎng)絡(luò)通訊:HTTP協(xié)議、跨域通信、安全問(wèn)題(CSRF、XSS)、瀏覽器渲染機(jī)制、異步和單線程、頁(yè)面性能優(yōu)化、防抖動(dòng)(Debouncing)和節(jié)流閥(Throtting)、lazyload、前端錯(cuò)誤監(jiān)控、虛擬DOM等。
8、底層原理:V8、垃圾回收、內(nèi)存生命周期、線程。
9、圖像處理:canvas、WebGL。
10、面向?qū)ο笤O(shè)計(jì)、架構(gòu)設(shè)計(jì)、算法等。
PS:前面5條建議按照順序?qū)W習(xí),這是基礎(chǔ)內(nèi)存,作為一名前端必須掌握的。后面5條可按照需求修改先后順序。
以上是作為一名純技術(shù)前端來(lái)講的,如果是偏向UI前端,那么比較需要多一點(diǎn)了解業(yè)務(wù)知識(shí),并且盡可能自己的審美觀變得接近大多數(shù)人。
附上一個(gè)我用前端實(shí)現(xiàn)的表情包,圖二(歡迎吐槽我的審美[我想靜靜])
前端項(xiàng)目流程八個(gè)階段?
<1>第一階段:
? HTML+CSS:
HTML進(jìn)階、 CSS進(jìn)階、DIV+CSS布局、HTML+CSS整站開發(fā)、
? Javascript基礎(chǔ):
Js基礎(chǔ)教程、js內(nèi)置對(duì)象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時(shí)器和焦點(diǎn)圖。
? JS基本特效:
常見特效、例如:tab、導(dǎo)航、整頁(yè)滾動(dòng)、輪播圖、JS制作幻燈片、彈出層、手風(fēng)琴菜單、瀑布流布局、滾動(dòng)事件、滾差視圖。
? JS高級(jí)特征:
正則表達(dá)式、排序算法、遞歸算法、閉包、函數(shù)節(jié)流、作用域鏈、基于距離運(yùn)動(dòng)框架、面向?qū)ο蠡A(chǔ)、
? JQuery:基礎(chǔ)使用
懸著器、DOM操作、特效和動(dòng)畫、方法鏈、拖拽、變形、JQueryUI組件基本使用。
這是我整理的web前端資料視頻
<2>第二階段:HTML5和移動(dòng)Web開發(fā)
? HTML5:
HTML5新語(yǔ)義標(biāo)簽、HTML5表單、音頻和視頻、離線和本地存儲(chǔ)、SVG、Web Socket、Canvas.
? CSS3:
CSS3新選擇器、偽元素、臉色表示法、邊框、陰影、flex布局、background系列屬性改變、Transition、動(dòng)畫、景深和深透、3D效果制作、Velocity.js框架、元素進(jìn)場(chǎng)、出場(chǎng)策略、炫酷CSS3網(wǎng)頁(yè)制作。
? Bootstrap:
響應(yīng)式概念、媒體查詢、響應(yīng)式網(wǎng)站制作、刪格系統(tǒng)、刪格系統(tǒng)原理、Bootstrap常用模板、LESS和SASS。
? 移動(dòng)Web開發(fā):
跨終端WEB和主流設(shè)備簡(jiǎn)介、視口、流式布局、彈性盒子、rem、移動(dòng)終端JavaScript事件、手機(jī)中常見JS效果制作、手機(jī)聚劃算頁(yè)面、手機(jī)滾屏。
<3>第三階段:HTTP服務(wù)和AJAX編程
? WEB服務(wù)器基礎(chǔ):
服務(wù)器基礎(chǔ)知識(shí)、Apache服務(wù)器和其他WEB服務(wù)器介紹、Apache服務(wù)器搭建、HTTP介紹。
? AJAX上篇:
Ajax簡(jiǎn)介和異步的概念、Ajax框架的封裝、XMLHttpRequest對(duì)象詳細(xì)介紹方法、兼容性處理方法、Ajax框架的封裝、Ajax中緩存問(wèn)題、XML介紹和使用、會(huì)處理簡(jiǎn)單的GET或者POST請(qǐng)求、
? AJAX下篇:
JSON和JSON解析、數(shù)據(jù)綁定和模板技術(shù)、JSONP、跨域技術(shù)、圖片預(yù)讀取和lazy-load技術(shù)、JQuery框架中的AjaxAPI、使用Ajax實(shí)現(xiàn)爆布流案例額。
<4>第四階段:面向?qū)ο筮M(jìn)階
? 面向?qū)ο蠼K極篇:
從內(nèi)存角度到理解JS面向?qū)ο?、基本類型、?fù)雜類型、原型鏈、ES6中的面向?qū)ο?、ES6中變量的作用域(let ,const(聲明變量只讀),塊級(jí)作用域),ES6中函數(shù)新特性。
? 面向?qū)ο笕筇卣鳎?/p>
繼承性、多態(tài)性、封裝性。
? 面向?qū)ο笾袆?chuàng)建對(duì)象的五種方法:
自定義對(duì)象 、工廠模式創(chuàng)建對(duì)象、構(gòu)造函數(shù)、 混合模式創(chuàng)造對(duì)象、JSO格式創(chuàng)建對(duì)象。
<5>第五階段:封裝一個(gè)屬于自己的框架
? 框架封裝基礎(chǔ):
事件流、冒泡、捕獲、事件對(duì)象、事件框架、選擇框架。
? 框架封裝中級(jí):
運(yùn)動(dòng)原理、單物體運(yùn)動(dòng)框架、多物體運(yùn)動(dòng)框架、運(yùn)動(dòng)框架面向?qū)ο蠓庋b。
? 框架封裝高級(jí)和補(bǔ)充:
JQuery框架雛形、可擴(kuò)展性、模塊化、封裝屬于傳智自己的框架。
<6>第六階段:模塊化組件開發(fā)
? 面向組件編程:
面向組件編程的方式、面向組件編程的實(shí)現(xiàn)原理、面向組件編程實(shí)戰(zhàn)、基于組件化思想開發(fā)網(wǎng)站應(yīng)用程序。
? 面向模塊編程:
AMD設(shè)計(jì)規(guī)范、CMD設(shè)計(jì)規(guī)范、RequireJS,LoadJS、淘寶的SeaJS。
<7>第七階段:主流的流行框架
? Web開發(fā)工作流:
GIT/SVN、Vue-cli腳手架、NPM/Bower依賴管理工具、Grunt/Gulp/Webpack。
? 前端主流框架:
Vue.js、Angular.js、React.JS、Bootstrap。
? 常用庫(kù):
React.js、Vue.js、JQuery.js。
<8>第八階段:Node.js全棧開發(fā):
? 快速入門:
Node.js發(fā)展、生態(tài)圈、Io.js、Linux/Windows/OS X環(huán)境配置、REPL環(huán)境和控制臺(tái)程序、異步編程,非阻塞I/O、模塊概念,模塊管理工具、開發(fā)流程,調(diào)試,測(cè)試。
? 核心模塊和對(duì)象:
全局對(duì)象global,process,console,util、事件驅(qū)動(dòng),事件發(fā)射器、加密解密,路徑操作,序列化和反序列化、文件流操作、HTTP服務(wù)端與客戶端、Socket.IO。
? Web開發(fā)基礎(chǔ):
HTTP協(xié)議,請(qǐng)求響應(yīng)處理過(guò)程、關(guān)系型數(shù)據(jù)庫(kù)操作和數(shù)據(jù)訪問(wèn)、非關(guān)系型數(shù)據(jù)庫(kù)操作和數(shù)據(jù)訪問(wèn)、原生的Node.js開發(fā)Web應(yīng)用程序、Web開發(fā)工作流、Node.js開發(fā)Blog案例。
? 快速開發(fā)框架:
Express簡(jiǎn)介+MVC簡(jiǎn)介、Express常用API、Express路由模塊、Jade/Ejs模板引擎、使用Express重構(gòu)Blog案例、Koa等其他常見MVC框架。
? Node.js開發(fā)電子商務(wù)實(shí)戰(zhàn):
需求與設(shè)計(jì)、賬戶模塊注冊(cè)登錄、會(huì)員中心模塊、前臺(tái)展示模塊、購(gòu)物車,訂單結(jié)算、在線客服即時(shí)通訊模塊。
Web前端是干嘛的?
主要包括html,css和js三種技術(shù),和當(dāng)百前的html5開發(fā)屬于同種工種,度是原來(lái)網(wǎng)頁(yè)設(shè)計(jì)與制作職位的細(xì)化,細(xì)化的網(wǎng)頁(yè)制作職位。主要工作是將知設(shè)計(jì)師制作的設(shè)計(jì)圖,制作成,能夠讓后臺(tái)放置數(shù)據(jù)的網(wǎng)頁(yè),換言之就是道實(shí)現(xiàn)網(wǎng)頁(yè)哪個(gè)位置放置什么,文字內(nèi)顏色,圖片尺寸,包括網(wǎng)頁(yè)中特效的實(shí)現(xiàn)。
1.pc端網(wǎng)站開發(fā):web前端可以使用html+css制作出很多精美的pc端網(wǎng)頁(yè),網(wǎng)站的特效可以使用js+jquery來(lái)完成。
2.移動(dòng)端+app開發(fā):現(xiàn)在的web前端工作者不局限于pc端了,移動(dòng)端+app,web前端工作者也可以完成,使用前端工具+框架制作出精美的移動(dòng)端頁(yè)面或app。
3.html5游戲開發(fā):隨著html5的興起,web前端也可以做小游戲了,使用canvas可以完成很多小游戲以及游戲引擎