1、 大型網站前端用什么框架開發(fā),web前端框架主要技術?
前端開發(fā)需要學習的技術
1 掌握基本web前端開發(fā)技術:HTML、CSS、JavaScript、DOM、BOM、AJAX等,而且要了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug
2 必須掌握網站性能優(yōu)化、SEO和服務器端開發(fā)技術的基礎知識
3 必須學會運用各種web前端開發(fā)與測試工具進行輔助開發(fā)
4 除了掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等
5 未來web前端開發(fā)工程師還要研究HTML5、web視覺設計、網站配色、網站交互設計模式等相關技術
2、 現在企業(yè)的主流前端框架有哪些?
謝謝邀請!
企業(yè)主流的前端框架1、
Angular.js
github排名:star:59.6K
angular框架算是前端框架中的常青樹,自2009年由Misko Hevery等人創(chuàng)建后,在前端框架中一直占有重要的地位。angular是一款優(yōu)秀的前端JS框架,被用于Google的多款產品當中。angularJS有著諸多特性,最核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等,這些特性都是前端人員非常喜歡的東西。
曾經作為最流行的前端js框架,現在熱度也在慢慢降低,體量大,不適合小項目使用,使得angular不再享受獨寵。
2、Vue.js(三大主流框架之一)
github:star: 163K
Vue (讀音 /vju?/,類似于 view) 是一套用于構建用戶界面的漸進式JavaScript框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注視圖層,方便與第三方庫或既有項目整合。
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue 采用自底向上增量開發(fā)的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復雜單頁應用。Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件 [2] 。Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時 [3] ,Vue.js 也能完美地驅動復雜的單頁應用。有以下幾個特點:
(1) 易用
已經會了 HTML、CSS、JavaScript?即刻閱讀指南開始構建應用!
(2) 靈活
不斷繁榮的生態(tài)系統(tǒng),可以在一個庫和一套完整框架之間自如伸縮。
(3) 高效
20kB min+gzip 運行大小超快虛擬 DOM最省心的優(yōu)化
3、react.js(三大主流框架之一,GitHub排名僅次Vue)
github: star: 148K
React 是一個 Facebook 和 Instagram 用來創(chuàng)建用戶界面的 JavaScript 庫。很多人認為 React 是 MVC 中的 V(視圖)。我們創(chuàng)造 React 是為了解決一個問題:構建隨著時間數據不斷變化的大規(guī)模應用程序。為了達到這個目標,React 采用下面兩個主要的思想。
有以下幾個特點:
(1) 聲明式
React 使創(chuàng)建交互式 UI 變得輕而易舉。為你應用的每一個狀態(tài)設計簡潔的視圖,當數據改變時 React 能有效地更新并正確地渲染組件。
以聲明式編寫 UI,可以讓你的代碼更加可靠,且方便調試。
(2) 組件化
創(chuàng)建擁有各自狀態(tài)的組件,再由這些組件構成更加復雜的 UI。
組件邏輯使用 JavaScript 編寫而非模版,因此你可以輕松地在應用中傳遞數據,并使得狀態(tài)與 DOM 分離。
(3) 一次學習,隨處編寫
無論你現在正在使用什么技術棧,你都可以隨時引入 React 來開發(fā)新特性,而不需要重寫現有代碼。React 還可以使用 Node 進行服務器渲染,或使用 React Native 開發(fā)原生移動應用。
ReactJS vs Angular5 vsVue.js
的使用情況總的來說,React和Angular一直保持著相對一致的發(fā)展步調。如果要我嘗試做個預測,那么React會持續(xù)升高,Angular有所下滑。Vue.js依然不是很明晰,不過由于其框架的簡潔性,發(fā)展也不錯。
下面我們各個框架的優(yōu)缺點:
(1) Angular 5
Angular是一個從2009年就開始推出JavaScript MVVM框架,對于構建高度可交互的網頁應用非常方便。
優(yōu)點
新特性:RXJS,快速編譯(3秒內),新的HttpClient;詳細的文檔幾乎涵蓋了所有必須的信息,你甚至不需要向同事咨詢。不過,你需要更多的時間去學習;數據雙向綁定,可以減少出錯的風險;MVVM(Model-View-ViewModel)使得開發(fā)者可以針對同一個App模塊同時開發(fā);依賴注入使得模塊化和模塊中組件引入更加方便;缺點
與生俱來的復雜的語法;好在Angular 5使用TypeScript 2.4,已經簡單多了;遷移問題:從低版本升級到新版本的時候,不兼容導致遷移成本高。使用Angular 5的公司:Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase。
(2) ReactJS
ReactJS是一個Facebook在2013年開源的JavaScript庫,可以非常方便地構建大型網頁應用。
優(yōu)點
易于學習:由于語法十分簡潔,和Angular相比,React要容易得多。工程師只需要重溫一下HTML的基本知識就足夠。根本不需要像Angular一樣,還要深度學習TypeScript。高度的靈活性;虛擬DOM將HTML,XHTML、或則XML的文檔格式化成樹形結構,這樣瀏覽器可以更容易理解;結合ES6/7,React可以很容易寫出各種酷炫代碼;Downward數據綁定,也就是說父節(jié)點的數據不會受到孩子節(jié)點的影響;100%的開源,每天都有來自全世界無數的開發(fā)者的更新和改進;絕對的輕量級,因為數據處理既可以在用戶端,也可以在服務端;版本遷移非常容易,Facebook提供了”codemods”來自動化這一過程。缺點
缺乏官方文檔:ReactJS的快速開發(fā)使得文檔的缺乏,眾多開發(fā)者的維護也使其缺乏一個系統(tǒng)化的思路;React因為太靈活增加了決策成本而不好使;需要很長的時間去掌握,因為ReactJS需要你對如何將UI和MVC框架整合有一個足夠深度的理解。使用ReactJS的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft。
(3) Vue.js
Vue.js是一個2013年誕生的前端框架,非常適合用于構架非常靈活的UI和復雜的單頁面應用。
優(yōu)點
強化的HTML,也就是說Vue.js有著很多和Angular相似的特點。詳細的文檔,Vue.js有著超級友好的文檔,開發(fā)者可以快速的學會,這將會節(jié)省很多時間;可適用性:你可以很快地從其它框架轉移到Vue.js,因為它和Angular以及React都有一定的相似性;非常棒的整合性:Vue.js可以同時用于單頁面應用和更加復雜的網頁應用。主要在于你可以用它編寫很小的可交互部件,然后可以很容易地整合到現有的項目中而不會影響到整個系統(tǒng);可擴展性:Vue.js可以用于快速開發(fā)大型復用模板;體積小:Vue.js只有20KB左右的大小,使得其速度和靈活性相對于其它框架都好不少。缺點
資源匱乏:Vue.js依然在整個市場中只占有很小的比例,所以相應的資源、知識要少很多;靈活性帶來的風險:有時候,將其整合到大型項目的時候會有一些問題,但是你不見得能夠找到解法;來自中國:許多的元素和描述依然使用中文。這對于開發(fā)中會引入一些復雜性,好在越來越多的相關資料已經被翻譯成英文。使用Vue.js的公司:小米, 阿里巴巴, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters。
我們看下最近幾年的前端招聘一般的前端公司都需要精通這幾個框架的 ;
總結如果向從事前端,走的 更遠,這幾個框架是必須要精通的。
3、 JAVA或者其他語言做后端?
要理解這兩個問題,node(加個js的話排版會有問題,所以以下簡稱node)是關鍵。那什么是node,node可以是一個讓 JavaScript 運行在服務端的開發(fā)平臺,它讓 JavaScript 成為與PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言。在2009年發(fā)布時引起了極大的轟動。
對前端來說,node可以做兩件事,一是可以用來做前端的后端,二是僅僅作為中間件。前端是題目中所說的前端的全棧模式,后者僅僅是一個中間件,后端仍由傳統(tǒng)的Java等后端語言實現。下面說一說這兩種模式。
01前端的全棧模式——node作為服務器先來看一個前端全棧模式的layout:
為了不讓圖片過大,我刪除了一些約定俗成或者與node無關的東西,從這個layout里面我們可以看到后端的一些明顯特征,如定義錯誤碼、權限過濾、業(yè)務接口、mysql客戶端、日志處理等。總結來說,前端的全棧模式是把前端與后端放在一個工程里面,使用node提供server服務,處理業(yè)務邏輯和操作數據庫,這是前端全棧模式與單獨的前端開發(fā)最大區(qū)別之所在。
02 僅前端開發(fā)——node作為中間件仍然還是放一張圖:
上圖中的這種模式是很多公司和團隊用的模式,圖中用兩種顏色區(qū)分了前后端,上面是前端,下面是后端。
為什么這么做?因為很多時候后端提供的數據結構并不符合前端的要求,或者是一些簡單的邏輯沒必要抑或懶得在后端做(是的,有這種情況),那前端就要對數據做分組、運算、轉換等操作,但這些處理操作如果由瀏覽器來完成的話對性能肯定是有影響的,特別是需要處理的數據很多的時候。而node做中間層引入前端項目正好可以解決這個問題,讓用戶的請求首先經過node端,然后node再向后端的Java等服務器請求數據,待數據返回后渲染HTML模板呈現給用戶。
總結來說,使用node作為中間層之后,Java后端處理業(yè)務邏輯并提供API接口(如常用的Restfull API),不僅前后端得到了很好的分離,還解決了異步渲染中的種種問題。
以上就是我的一些拙見,歡迎大家在評論區(qū)評論交流。