官术网_书友最值得收藏!

2.1 Vue.js產生的背景

什么是Vue.js?Vue.js也經常被簡稱為Vue。Vue的讀音是“[vju?]”,與英文單詞“view”的讀音類似。Vue的命名目的與view的含義有關,即致力于視圖層的開發。

Vue.js是一套用于構建UI的框架(Framework)。Vue.js的核心庫只關注視圖層,不僅易于上手,還易于與第三方庫或既往項目整合。另外,當與現代化的工具鏈和各種支持類庫結合使用時,Vue.js也完全能夠應對復雜的單頁應用程序(Single Page Application,SPA)。

Vue.js的產生與當前的前端開發方式的巨變有著必然聯系。

2.1.1 Vue.js與jQuery的不同

傳統的Web前端開發主要采用以jQuery為核心的技術棧。jQuery主要用來操作DOM(Document Object Model,文檔對象模型),其最大的作用是消除各瀏覽器的開發差異,簡化和豐富DOM的接口(Application Programming Interface,應用程序編程接口),例如DOM的轉換、事件處理、動畫和AJAX(Asynchronous JavaScript and XML,異步JavaScript和XML技術)交互等。

Vue.js的優勢如下。

  • 它是一個完整的框架,試圖解決現代Web應用開發各個方面的問題。Vue.js有著諸多特性,核心功能包括模塊化、自動化雙向數據綁定、響應式等。
  • Vue.js用一種完全不同的方法來構建UI,其中以聲明方式指定視圖模型驅動的變化。而jQuery常常需要編寫以DOM為中心的代碼,隨著項目復雜性的增長(無論是在規模還是在交互性方面),代碼會變得越來越難控制。

鑒于以上優勢,所以Vue.js更加適合現代的企業級應用開發。

2.1.2 Vue.js與React、Angular的優勢對比

在當前主流的Web框架中,Vue.js與React、Angular是備受矚目的3個框架。

1. 從市場占有率來看

Angular與React相對來說比較“老牌”,而Vue.js是后起之秀,所以Angular與React的市場占有率都比Vue.js的市場占有率更高。但需要注意的是,Vue.js的用戶增長速度很快,有迎頭趕上之勢。

2. 從支持度來看

Angular與React背后的公司分別是Google和Facebook,而Vue.js屬于個人項目。所以無論是開發團隊還是技術社區,Angular與React都更加具有優勢。

Vue.js的使用風險相對高一些,畢竟它在很大程度上依賴于維護者的生存能力和將它繼續維護下去的愿望。好在目前大的互聯網公司都在與Vue.js展開合作,這樣在一定程度上會讓Vue.js走得更遠。

3. 從開發體驗來看

React應用是采用JavaScript或者TypeScript編寫的,并采用組件化的方式來開發可重用的UI。React的HTML元素是嵌在JavaScript代碼中的,這樣在一定程度上有助于關注點的聚焦,但不是所有的開發人員都能接受這種JavaScript代碼與HTML元素“混雜”的方式。

Vue.js是采用JavaScript編寫的,在Vue.js 3中也支持TypeScript。Vue.js主要面向開發漸進式的Web應用,用戶使用起來比較簡單,易于入門。

Angular有著良好的模板與腳本相分離的代碼組織方式,在大型系統中可以方便地實現代碼管理和維護。Angular完全基于TypeScript語言來開發,擁有更強的類型體系,使得代碼更加健壯,也利于后端開發人員掌握。

4. 從框架的強制性來看

每個框架都不可避免地會有自己的一些特點,從而對開發人員有一定的要求,這些要求就體現了強制性。強制性的約束有大有小,框架的強制程度會影響在業務開發中的使用。例如,Angular是強制性大的框架,開發人員如果要用它,則必須接受以下要求:

  • 必須使用它的模塊機制;
  • 必須使用它的“依賴注入”;
  • 必須使用它的特殊形式來定義組件。

所以Angular是有比較強的排他性的。如果你的應用不是從頭開始構建的,而是要不斷考慮是否跟其他技術集成的,這些要求會給你帶來一些困擾。

又如React,它也有一定程度的強制性。它的強制性主要體現在函數式編程的理念,例如:

  • 需要知道什么是副作用;
  • 需要知道什么是純函數;
  • 需要知道如何隔離副作用。

相對而言,React的強制性沒有Angular的那么大,但是比Vue.js的大。

因此,Vue.js有小強制性,可以讓開發人員更快上手。

2.1.3 Vue.js、React、Angular三者怎么選

Angular、React、Vue.js都是非常流行的框架,有著不同的受眾,開發人員選擇哪個框架應考慮實際應用的需要。

總的來說,三者在入門難度和功能強大程度上的排序如下。

  • 入門難度順序:Vue.js<React<Angular。
  • 功能強大程度:Vue.js<React<Angular。

建議如下。

  • 如果你只想快速實現一個小型應用,那么選擇Vue.js無疑是最經濟的。
  • 如果你想要建設大型的應用,或者考慮進行長期維護,那么建議你選擇Angular。Angular可以讓你從一開始就采用規范的方式來開發,并且能降低出錯的可能性。
主站蜘蛛池模板: 深泽县| 高碑店市| 黄骅市| 台东县| 昌图县| 商城县| 浦江县| 桃园县| 绥阳县| 南阳市| 滦平县| 梅州市| 崇义县| 洞口县| 彭水| 芦山县| 浦江县| 重庆市| 桓台县| 拉孜县| 逊克县| 靖边县| 丹阳市| 会同县| 腾冲县| 兴和县| 福建省| 萨嘎县| 漠河县| 通江县| 寻甸| 阿坝| 聂拉木县| 乌拉特前旗| 南澳县| 会泽县| 陕西省| 宁陕县| 江口县| 红安县| 远安县|