Angular、React 和 Vue 三大框架,Web 開發該如何選擇?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"本文最初發佈於 Northell 博客,經原作者授權由 InfoQ 中文站翻譯並分享。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着社交媒體和用戶生成內容的爆炸式增長,互聯網正在向更好的方向發展。爲了跟上時代發展的步伐,提供更好的交互性,開發人員開始構建庫和框架來簡化交互式站點的構建。2006 年,John Resig 發佈了 jQuery,使得在 HTML 中編寫客戶端腳本變得更加容易。隨着時間的推移,其他類似的項目出現了。剛開始,它們是一個龐大的單體,而且把項目的構想強加給開發者。現在,這些庫已經開始向緊湊型輕量級庫轉變,可以非常容易地添加到任何應用程序中。讓我們來看看其中最受歡迎的三個。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/1c\/1c92880dda46a97ddd3e458eae755f1a.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"JavaScript 框架概覽"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開始一個新項目總是要做許多決定。其中一個關鍵決策就是選擇合適的框架或庫。幸運的是,Vue.js 是一個功能非常多樣化的庫,可以處理各種各樣的任務。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Vue.js"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Vue.js 這個庫讓你可以將交互性和附加功能添加到任何使用 JavaScript 的編碼環境中。Vue 既可以在單獨的頁面上用來解決簡單的任務,也可以作爲成熟的工業應用程序的基礎。Vue.js 是一個用於構建圖形用戶界面的高級框架。它也可以與一些現代工具和附加庫一起,用於構建複雜的單向應用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Vue 庫其中一個最大的優點是它不需要任何特殊知識。任何 Vue 應用程序都是使用 HTML、CSS 和 JavaScript 編寫的——熟悉這些工具就可以立即投入工作。即使你以前從未做過客戶端開發,也可以基於以前的 MVC 設計模式使用經驗進行構建,這種模式與 MVVM 非常相似。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"React"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"藉助 React 庫,我們可以輕鬆地創建交互式用戶界面。集成 React 時,不需要更改當前項目的代碼,它只負責渲染界面,不會額外帶來痛苦。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"React 系統支持用戶界面更新,使得爲應用程序創建健壯的模塊化組件更加容易。React 庫通過數據更新來實現大部分用戶界面維護工作,這對開發人員來說非常令人愉快(難怪它如此受歡迎)。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Angular"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Angular 差不多是一個完整的開發環境。它包含一整套程序,包括 TypeScript 編譯器、AOT 編譯器和 Web 服務器。Angular 的 Web 服務器用於調試使用這個框架開發的站點。它是用同一個 Angular CLI 實用程序啓動的,要啓動 Angular CLI,你需要在 Windows 命令行中進入項目文件夾,並執行 "},{"type":"text","marks":[{"type":"strong"}],"text":"ng serve"},{"type":"text","text":" 命令。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Vue、React 和 Angular 的主要特徵"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"React 最大的其中一個優勢是:在穩定性和創新性之間做了很好的平衡,使得用戶比較容易適應。這個原因以及其他一些原因使 React 保持了它的地位,並獲得越來越多的人氣。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/92\/92aa97db017f8c414f4949cec71cf72f.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"圖片來源:"},{"type":"link","attrs":{"href":"https:\/\/insights.stackoverflow.com\/trends?tags=reactjs%2Cvue.js%2Cangular%2Cangularjs","title":"","type":null},"content":[{"type":"text","text":"https:\/\/insights.stackoverflow.com\/trends?tags=reactjs%2Cvue.js%2Cangular%2Cangularjs"}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"大小"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開發框架的大小對未來應用的性能至關重要。框架和應用程序必須在應用程序開始正常工作之前加載。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這方面,Angular 最複雜,有 143KB。React 次之,有 43KB,而 Vue.js 只有 23KB。除非你的應用特別大,並且包含了大量的組件,否則最好使用更小的結構。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"性能"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在 Web 項目中,性能與 DOM 密切相關:DOM 在瀏覽器 \/ 代碼中表示 Web 頁面。在發生更新時,你可以通過 DOM 控制 Web 頁面。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Vue、React 和 Angular 的性能會因爲任務的不同而有所差異,但在大多數情況下,它們都非常高效和快速。React 和 Vue 都實現了 DOM。得益於其精心設計的結構,Vue 提供了出色的性能和內存分配。這就是 React 和 Vue.js 優於 Angular 的地方:它們利用了虛擬 DOM——原始 DOM 的複本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"注意:DOM 是一種將 HTML 文檔的內容表示爲對象的方法。此外,還有一個用於管理指定對象的接口。DOM 分常規 DOM(也稱爲真 DOM)和虛擬 DOM。它們有什麼區別呢?讓我們來看一個例子。如果你想修改在 HTML 標籤中找到的某些信息,算法將會這樣做:真正的 DOM 將更新所有標籤,直到它找到它需要的片段。在某些情況下,這會對性能和其他參數產生負面影響。虛擬 DOM 則只更新必要的 HTML 塊。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"社區"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"React 是世界上最流行的框架,這已不是什麼祕密。它越來越受歡迎,因爲它提供了真正的 Promise。React 的 Mental Model 看起來很可靠,其組件讓創建用戶界面變得更容易,API 靈活且富有表現力,整個項目給人的感覺是就應該那樣。對 API 庫的描述也友好,更容易給人留下良好的印象。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從那時起,React 庫在基本概念和 API 方面就基本保持不變,但已經形成並發展出了一整套的知識和最佳實踐,越來越多的人在使用它。Angular 因其優點而備受讚譽,並擁有大量的社區支持。遺憾的是,儘管 Vue.js 有很多好處,但它並沒有像它的競爭對手那樣被開發者所接受。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面讓我們從流行度和相關性兩個方面比較下這三個框架:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"GitHub"},{"type":"text","text":":目前,Vue.js 是最流行的框架,儘管它是最年輕的,這意味着越來越多的項目將使用它。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"谷歌搜索"},{"type":"text","text":":在谷歌搜索中,React 查詢請求最多,緊隨其後的是 Vue.js。目前最不受歡迎的是 Angular.js。Angular.js 的人氣在下降,而 Vue.js 的人氣卻在上升。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"勞動力市場需求"},{"type":"text","text":":大多數職位空缺與 React.js 有關,然後是 Angular,再然後纔是 Vue.js。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Vue、React 和 Angular:該選哪個?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了選出最合適的庫,你應該首先仔細分析這些框架並理解自己的需求。無論是有許多依賴項的現有項目,還是你想使用熟悉的庫進行開發的新應用程序,"},{"type":"text","marks":[{"type":"strong"}],"text":"Vue"},{"type":"text","text":" 都不會給你帶來任何麻煩。你可以繼續使用 Bootstrap 或 Bulma 這樣的 CSS 框架,保留爲јQuery 或 Backbone 編寫的組件,集成你最喜歡的庫執行 HTTP 請求,或使用 Promise 對象。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"要開始使用 Vue 進行編程,你所要做的就是將 Vue.js 庫連接到 Web 頁面。不需要複雜的組裝工具!從頭到尾開發一個原型只需要 1 到 2 周的時間,這讓你能夠儘早並經常地收集用戶反饋。Vue 2 引入了服務器端渲染(SSR)支持。這讓你可以最小化初期的數據加載,並根據需要請求新的視圖和資源。與高效的組件緩存相結合,可以進一步減少流量消耗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"React"},{"type":"text","text":" 庫能夠做一些令人驚歎的事情。因爲整個用戶界面都是用 JavaScript 定義的,所以你可以使用 JavaScript 的豐富功能在模板中執行各種操作。你只會受到 JavaScript 特性的限制,而不會受到模板框架特性的限制。當你想到完全用 JavaScript 定義的視覺效果時,你可能會想到很多引號、轉義字符和 "},{"type":"text","marks":[{"type":"strong"}],"text":"createElement"},{"type":"text","text":" 調用。別擔心,React 庫允許你(選擇性地)使用可以與 JavaScript 代碼共存的 HTML-like JSX 語法定義可視元素。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"React 與其他兩個框架在以下理念上有所不同:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"與其說它是一個框架,不如說它是一個庫(最初是爲了處理 UI 而創建的);"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因爲它不受框架的限制,所以它的功能更多——更適合專業人士,而不是初學者;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在 Angular 中許多可以“開箱即用”的主要特性,在這裏必須單獨連接(這種方法有優點,也有缺點,對於初學者來說是缺點,因爲需要做不必要的動作);"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"更多地面向 JavaScript 而不是 TypeScript(儘管每個版本對 TS 的支持都在增加);"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"更便於創建原生 Android 和 iOS 移動應用程序;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"擁有大量適用於各種場合的第三方庫(多於 Angular)。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Angular"},{"type":"text","text":" 已經被用在了許多規模最大、最複雜的 Web 應用程序中。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/71\/71a57f141fcc5f962eafcfa36ab95d34.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"圖片來源:"},{"type":"link","attrs":{"href":"https:\/\/www.madewithangular.com\/","title":"","type":null},"content":[{"type":"text","text":"https:\/\/www.madewithangular.com\/"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Angular 借鑑了服務器端開發中的一些最佳特性,並用它們來擴展瀏覽器中的 HTML 標記。這樣,創建具有增強功能的應用程序就更簡單輕鬆了。Angular 應用程序基於 MVC 設計模式構建,這個模型致力於創建具有以下特徵的應用程序:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"易於擴展:如果你理解了基礎知識,即使是最複雜的 Angular 應用,你也很容易就能夠理解,這意味着你可以很輕鬆地擴展應用來提供實用的新功能。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"易於維護:Angular 應用程序很容易調試,Bug 很容易修復,這意味着長期運行的 Angular 應用也很容易維護。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"測試工具:Angular 有良好的 go mod 和端到端測試支持。因此,你可以在用戶遇到之前找到並修復它們。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"標準化:Angular 基於瀏覽器的內部功能,不會給你的工作帶來任何阻礙。這讓你可以創建符合標準的 Web 應用程序,包含最新的功能(例如,各種 HTML5 API)、流行的工具和框架。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這是一個框架——這意味着它設定了創建 Web 應用程序的規則,在初始階段設定了特定的框架,讓初學者可以少費腦筋。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Angular 功能極多,如果需要額外的東西,可以連接第三方模塊。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Vue.js VS React:雙向數據綁定"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在 Vue 中,你可以輕鬆地將組件變量綁定到表單字段。當你更改變量時,表單字段會更新,當用戶更改表單字段時,組件變量也會更新。這比編寫 React 中的事件處理程序要容易得多。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"此外,很多人喜歡用圖表展示框架的受歡迎程度,其中 React 是 Angular 的 2 到 3 倍。它從創建移動應用程序(React Native)中獲益頗多,因爲與 Angular Ionic 相比,它更方便。至於 Web 應用程序(ReactJS)開發方面,一切就沒那麼簡單了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"例如,對於 Web 應用程序,我發現,使用 Angular 比使用 ReactJS 更方便。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你可以自己嘗試並比較不同的方向或技術。爲此,你可以在谷歌趨勢中輸入一些關鍵字,它會爲你畫出漂亮的圖表。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Vue.js vs React vs Angular"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"與之前的框架不同,Vue.js 是由一個人創建的,他認爲 2013 年已經有的框架都太複雜。Vue 的第一個和第二個版本都是由一個人創建的,因此,在某些方面,它可能比競爭對手更糟糕,尤其是在安全方面。Vue 3 是由一個開發團隊創建的,這意味着現在許多 Bug 和缺點都得到了修復,框架本身的效率也得到了提升。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"我應該學習 React 還是 Angular?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最好同時學習 Angular 和 React。這兩種框架各有優缺點。專家建議初學者首先學習 Angular,因爲你所需的一切都是“開箱即用”的,這樣更不容易犯錯(框架會幫你控制)。在學習了 Angular 之後,你可以學習 ReactJS 和 React Native。另外,如果你只需要移動應用,你也可以直接跳到 React Native。事實上,你只需要學習框架的特性,僅此而已。其餘的知識都是通用的(OOP、TypeScript、RP)。學習框架本身 1 到 2 周就足夠了,你已經可以創建簡單的 Web 應用程序了。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"結束語"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"顯然,這三個框架都非常強大,但同時又很不一樣。它們有自己的優勢和劣勢,沒有一個通用的公式可以用來決出一個絕對的贏家。選哪個框架好,要看你正在創建的應用程序和你的特定需求。在做決定之前有必要進行全面的研究。對於那些從事商業投資而不是單個項目的公司來說,這一點尤其重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/northell.medium.com\/react-vs-vue-vs-angular-what-to-choose-for-web-development-abc5565d3f11","title":"","type":null},"content":[{"type":"text","text":"https:\/\/northell.medium.com\/react-vs-vue-vs-angular-what-to-choose-for-web-development-abc5565d3f11"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章