Web前端就是使用HTML、CSS、JavaScript等專業技能和工具將產品的UI設計稿實現成網站產品,涵蓋用戶PC端、移動端(手機,平板)等網頁,處理視覺和交互問題。
Web前端開發是一項很特殊的工作,涵蓋的知識面非常廣,既有具體的技術,又有抽象的理念。簡單地說,它的主要職能就是把網站的界面更好地呈現給用戶。使用到的主要技術包括:HTML、CSS、JavaScript,如果能會后臺編程語言,當然會更好。
web前端三大主流框架是什么?
web前端三大主流框架是Angular、React、Vue。
1、Angular
AngularJS由Misko Hevery 等人于2009年創建,后來唄谷歌所收購。它是一款優秀的前端JS框架被應用多多種產品中去。它不僅是一個理念先進的前端開發框架,還是一種端對端的解決方案。它遵循架構設計中的MVC模式,提倡數據與邏輯處理組件的松耦合。AngularJS通過指令技術實現了對HTML的自然擴展,以及通過編譯技術實現了數據模型與展現視圖的雙向自動同步,減輕了復雜的DOM操作。另外它也對前端的自動化測試技術提供了良好的支持。
Angular是一種用于創建單一應用程序界面的前端框架,它有許多核心功能例如數據綁定,服務,指令以及依賴注入等等。它具有模塊功能強大,擁有自定義命令等優點
特性:
1.良好的應用程序結構
2.雙向數據綁定
3.指令
4.HTML模板
5.可嵌入、注入和測試
優點:
1.模板功能強大豐富,自帶了極其豐富的angular指令。
2.是一個比較完善的前端框架,包含服務,模板,數據雙向綁定,模塊化,路由,過濾器,依賴注入等所有功能;
3.自定義指令,自定義指令后可以在項目中多次使用。
4.ng模塊化比較大膽的引入了Java的一些東西(依賴注入),能夠很容易的寫出可復用的代碼,對于敏捷開發的團隊來說非常有幫助。
5.angularjs是互聯網巨人谷歌開發,這也意味著他有一個堅實的基礎和社區支持。
缺點:
1.angular入門很容易但深入后概念很多,學習中較難理解。
2.文檔例子非常少,官方的文檔基本只寫了api,一個例子都沒有,很多時候具體怎么用都是google來的,或直接問misko,angular的作者。
3.對IE6/7兼容不算特別好,就是可以用jQuery自己手寫代碼解決一些。
4.指令的應用的最佳實踐教程少,angular其實很靈活,如果不看一些作者的使用原則,很容易寫出四不像的代碼,例如js中還是像jQuery的思想有很多dom操作。
5.DI依賴注入如果代碼壓縮需要顯示聲明。
2、React
React,facebook出品,正式版推出是在2013年,比angular晚了4年,但得益于其創新式的VirtualDOM,性能上碾壓angularJS,一經推出,火的一塌糊涂。 特點很多,VirtualDOM、JSX、Diff算法等,支持ES6語法,采用函數式編程,門檻稍高,但也更靈活,能讓開發具有更多可能性。
特性
1.聲明式設計:React采用聲明范式,可以輕松描述應用。
2.高效:React通過對DOM的模擬,最大限度地減少與DOM的交互。
3.靈活:React可以與已知的庫或框架很好地配合。
優點:
1.速度快:在UI渲染過程中,React通過在虛擬DOM中的微操作來實現對實際DOM的局部更新。
2.跨瀏覽器兼容:虛擬DOM幫助我們解決了跨瀏覽器問題,它為我們提供了標準化的API,甚至在IE8中都是沒問題的。
3.模塊化:為你程序編寫獨立的模塊化UI組件,這樣當某個或某些組件出現問題是,可以方便地進行隔離。
4.單向數據流:Flux是一個用于在JavaScript應用中創建單向數據層的架構5.同構、純粹的javascript:因為搜索引擎的爬蟲程序依賴的是服務端響應而不是JavaScript的執行,預渲染你的應用有助于搜索引擎優化。6.兼容性好:比如使用RequireJS來加載和打包,而Browserify和Webpack適用于構建大型應用。它們使得那些艱難的任務不再讓人望而生畏。缺點:React本身只是一個V而已,并不是一個完整的框架,所以如果是大型項目想要一套完整的框架的話,基本都需要加上ReactRouter和Flux才能寫大型應用。
3、Vue
Vue作為最后推出的框架(2014年),借鑒了前輩angular和react的特點(如VirtualDOM、雙向數據綁定、diff算法、響應式屬性、組件化開發等)并做了相關優化,使其使用起來更加方便,更容易上手,比較少適合初學者。
特性:
1.輕量級的框架
2.雙向數據綁定
3.指令
4.插件化
優點:
1.簡單:官方文檔很清晰,比Angular簡單易學。
2.快速:異步批處理方式更新DOM。
3.組合:用解耦的、可復用的組件組合你的應用程序。
4.緊湊:~18kbmin+gzip,且無依賴。
5.強大:表達式無需聲明依賴的可推導屬性(computedproperties)。
6.對模塊友好:可以通過NPM、Bower或Duo安裝,不強迫你所有的代碼都遵循Angular的各種規定,使用場景更加靈活。
缺點:
1.新生兒:Vue.js是一個新的項目,沒有angular那么成熟。
2.影響度不是很大:google了一下,有關于Vue.js多樣性或者說豐富性少于其他一些有名的庫
3.不支持IE8。