Angular、React 當前,Vue.js 優劣幾何?

2021-01-11 CSDN

在過去一年裡,前端開發發展迅速,前端工程師的薪資亦是水漲船高。2019 更是熱度不減,而作為近年來尤為熱門的前端框架,Vue.js 自是積累了大量關注。那麼,Vue.js 是適合你的框架嗎?

作者 |Tim Han

譯者 | 蘇本如

責編 | 仲培藝

以下為譯文:

對於大多數人來說,現在要構建一個新的前端應用,對框架/庫的選擇在很大程度上都是在 Angular 和 React 中二選一。很多時候,人們不會給 Vue.js 足夠的關注。因此,我想分享一些有關 Vue.js 的信息,以及我在使用 Vue.js 來構建生產應用中獲得的一些個人經驗。現在讓我們一起來問這個問題:Vue.js 是適合你的框架嗎?

注意:我並不想說 Vue.js 比 React、Angular 或者其它的任何前端框架好。這裡我分享的只是我在項目中使用 Vue.js 而獲得的一些個人體驗。

對於那些剛接觸 Vue.js 或從未聽說過 Vue.js 的人來說,Vue.js 是一個 Javascript 前端框架,最初於 2014 年發布,由 Evan You 開發。從那時起,Vue.js 就在很短的時間內獲得了許多前端開發人員/工程師的廣泛歡迎。使用 Vue.js 的一些著名公司包括 GitLab、阿里巴巴、BuzzFeed 等等。

Vue.js 的優點是什麼?

這是一個好問題!可以列出許多優點,而根據我的個人經驗,下面 4 點是最突出的優點:

1. 輕量化

2. 低複雜性

3. Virtual DOM

4. 低學習曲線(對初學者友好)

現在讓我們來了解每一點的細節。

輕量化

使用 Vue.js 來開發生產應用或個人項目的一個顯著優勢是它是一個相對輕量化的框架/庫。讓我們看看不同前端框架/庫的下載空間:

輕量化非常有用,尤其是在快速構建一個簡單應用的時候。我個人的用例是為工程團隊的內部工具構建 UI。

低複雜度

這恰好是 Vue.js 中我最喜歡的部分,因為在使用 React 構建許多應用之後,一旦在混合代碼庫中添加狀態管理,隨著應用程式變大,代碼庫通常會變得非常複雜。我注意到 React 應用變得複雜的原因之一是 JSX 模板、 lifecycle(生命周期)方法和其他方法都存在於同一個對象中。這常常使理解邏輯流程變得非常困難。那麼,讓我們看看 Vue.js 代碼是怎麼寫的:

請注意,這裡 HTML 模板、必要的方法和樣式表都是獨立的,因此很容易知道要查看的是代碼的哪個部分。這意味著代碼庫相對容易維護,而不必每次更新代碼時都增加代碼庫的複雜性。

虛擬 DOM

就像 React 一樣,Vue.js 實現了使用虛擬 DOM 來操作/渲染視圖。通過使用虛擬 DOM,用戶界面將通過在每次需要更改時不渲染真實的 DOM,而只是呈現虛擬 DOM 和真實 DOM 之間的部分差異,進而獲得更好的性能。

低學習曲線

我相信很多人都經歷過這種情況。

大多數從事 Web 開發的人都會學習以下三種基礎技術:HTML、CSS 和 JavaScript。想像一下一個初學者必須學習一個叫做 JSX 的新東西,而不是 HTML。雖然 JSX 看起來類似於 HTML,但確實有很多不同之處將 JSX 與 HTML 區分開來,而這種學習就不是 Vue.js 所必需的。

如上面所示,Vue.js 使用與 HTML 相同的標記名,這使得將知識從 HTML 傳輸到 Vue.js 更加容易。此外,代碼的模塊化結構有助於理解 Vue.js 組件的不同動作部分。

對於那些熟悉 React 的人來說,學習 Vue.js 是小菜一碟,因為兩者之間有很多相似之處。

Vue.js 缺點是什麼?

正如我想說的,Vue.js 非常棒,像任何其它框架/庫一樣,本身幾乎沒有什麼缺點。我還是在下面列出我所知道的 Vue.js 為數不多的幾個缺點:

1. 社區小

2. 英文寫作資源少

3. 就業機會少

我早期在用 Vue.js 開發項目時遇到的一個問題是,有時很難找到在應用開發中遇到的非常具體的問題的支持。因為 Vue.js 社區的規模仍然不如 Angular 或 React 那麼大。

另外一個我遇到的問題是,當我認為自己找到了幫助時,他們的回答往往是用中文寫的。就好象我以為我得救了的時候,其實我只是吞下了一個餌。後來,我發現 Vue.js 在亞洲國家比像在美國這樣的英語國家更受歡迎。(備註:對應原文英文背景)

最後,在目前的狀態下,使用 Vue.js 的公司並不多,因此很難找到需要 Vue.js 專業技能的工作。所以,我建議在以下情況下使用 Vue.js:個人項目、小規模的 UI 應用,或者出於好玩的目,以便你能夠在相對較短的時間內為你的應用提供一個輕量級的用戶界面。

現在,是時候回答這個問題了:Vue.js 是適合你的框架嗎?

原文:https://hackernoon.com/vue-js-good-bad-and-choice-dcc1d27f82c6?gi=6700a46b4a8e本文為 CSDN 翻譯,如需轉載,請註明來源出處。作者獨立觀點,不代表 CSDN 立場。

相關焦點

  • React、Angular和Vue三種最流行的前端框架哪一個最好?
    如果你想檢查原始碼,那麼你可以訪問下面的GitHub倉庫:Angular:https://github.com/angular/angularReact:https://github.com/facebook/reactVue:https://github.com/vuejs/vue結論React,Angular和Vue對於開發都非常有用,並且它們都沒有明顯好於其他的
  • 餓了麼公司前端團隊開源前端基於 Vue的桌面端組件庫-Element
    反饋 Feedback控制反饋:通過界面樣式和交互動效讓用戶可以清晰的感知自己的操作;頁面反饋:操作後,通過頁面元素的變化清晰地展現當前狀態。效率 Efficiency簡化流程:設計簡潔直觀的操作流程;清晰明確:語言表達清晰且表意明確,讓用戶快速理解進而作出決策;幫助用戶識別:界面簡單直白,讓用戶快速識別而非回憶,減少用戶記憶負擔。
  • 如何用純css打造類materialUI的按鈕點擊動畫並封裝成react組件
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫前言作為一個前端框架的重度使用者,在技術選型上也會非常注意其生態和完整性.筆者先後開發過基於vue,react,angular等框架的項目,碧如vue生態的elementUI, ant-design-vue, iView等成熟的UI框架
  • Vue.js 教程:構建一個特斯拉汽車餘電計算器
    在本教程中,我們會使用 Vue.js 這個容易理解的 JavaScript 框架製作一個儀錶盤,通過它可以計算特斯拉電動汽車在不同情況下的行駛距離。作為本教程的起點,請克隆這個 Github 存儲庫:https://github.com/petereijgermans11/workshop-reactjs-vuejs然後轉至 vuejs-app 目錄。
  • vue高級進階系列——用typescript玩轉vue和vuex
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫用過vue的朋友大概對vuex也不陌生,vuex的官方解釋是專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。
  • React vs Angular vs Vue.js——2019 該選誰?(更新版)
    一流的漸進型 Web 應用程式(PWA)支持,多虧了create-react-app應用生成器。數據綁定是單向的,意味著不想要的副作用更少。Redux——最流行的用來管理 React 應用程式狀態的框架,容易學習和掌握。React 實現了函數式編程(FP)的概念,創建易於測試和高度可復用的代碼。
  • 什麼是VUE?VUE與JS的對比
    我們需要讓所有綁定的對象和元素都能感知到變化1.1.1. vue與js的對比1.1.1.1. js的實現(了解)<!引入js文件--><script src="../node_modules/vue/dist/vue.js"></script></head><body><!--2.
  • 什麼是MVVM,MVC和MVVM的區別,MVVM框架VUE實現原理
    比如:angular、react、vue。瀏覽器的兼容性問題已經不再是前端的阻礙。前端的項目越來越大,項目的可維護性和擴展性、安全性等成了主要問題。當年為了解決瀏覽器兼容性問題,出現了很多類庫,其中最典型的就是jquery。但是這類庫沒有實現對業務邏輯的分成,所以維護性和擴展性極差。
  • React、Angular、Vue.js:三者完整的比較指南
    讓我們開始吧根據谷歌的趨勢,看一下React與Angular與Vue.js的比較。如果我們考慮過去一年,Angular似乎是贏家,React排在第二位,為Vue.js留下一小部分。React vs. Angular vs. Vue以下是一些可以幫助您更好地比較這些框架的問題:它們是否足以構建可擴展的應用程式?
  • Vue.js深入學習
    vue.jsv-cloak:解決網速慢閃爍問題 ,不會替換掉標籤裡面的內容v-text:會替換掉標籤裡面的內容:原樣輸出v-html:會解析標籤v-bind:綁定屬性的指令,縮寫@click.stop="btnHandle" 阻止事件冒泡 從裡到外.prevent 阻止默認行為,連結跳轉,.capture 實現捕獲觸發事件的機制 從外到裡.self 只有點擊當前元素時觸發,冒泡和捕獲都不管用,.once 只觸發一次事件處理函數.stop和.self的區別.self只會阻止自己身上冒泡行為,並不會阻止其他元素的冒泡行為
  • Vue全家桶之什麼是Vuex
    Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。Vuex 是幹什麼的?試想一下,如果在一個項目開發中頻繁的使用組件傳參的方式來同步data中的值,一旦項目變得很龐大,管理和維護這些值將是相當棘手的工作。
  • 4種可用於組織大型Vue.js項目的最佳實踐
    這就是在大型項目中將要面臨的真實情況,不過,Vue.js可以提供針對此問題的現場解決方案。我們可以在Vue.js中使用slots來提供表示父子關係的另一種方法,slots提供了將內容放置在新位置的渠道。
  • Vue 3 的最新進展
    Vue.js 作者尤雨溪近日介紹了 Vue 3 的最新進展。Vue Router目前存在部分與 vue-router@3.x 相關的路由鉤子(router hook)行為一致性問題,這也是 Vue Router 沒有被標記為 Beta 的原因。不過在非關鍵項目上可以使用新的路由。
  • 5分鐘帶你入門vuex(vue狀態管理)
    如果你之前使用過vue.js,你一定知道在vue中各個組件之間傳值的痛苦,在vue中我們可以使用vuex來保存我們需要管理的狀態值,值一旦被修改,所有引用該值的地方就會自動更新,那麼接下來我們就來學習一下vuex是如何修改狀態值的:我們新建一個vue項目(這裡由於我們是講解vuex,所以對於vue項目的創建我們不會講解太詳細);在命令行輸入 vue init
  • a標籤 href vue專題及常見問題 - CSDN
    vue.js 實現a標籤href裡添加參數原始碼列表可以正常顯示,但是連接沒有實現對items.orderNo的值轉化,最中解決方法
  • 在vue項目中使用vuex實現狀態管理的案例
    並不需要使用vuex。vuex的使用與否在實際開發中應該視項目情況而定。準備工作:a.在vue項目中安裝vuex: npm install vuex -S。b.了解下vuex的五個屬性。vuex個屬性五個屬性的作用:state:用來存儲vuex的基本數據。
  • vue3.0手機聊天室|Vue3+Vant3仿微信界面
    項目簡介Vue3Chat是基於vue3.x+vuex4+vue-router4全家桶技術和vant3.x構建開發的一款mobile仿微信界面聊天實例。實現了發送圖文消息、圖片|視頻預覽、位置查看、紅包|朋友圈等功能。
  • 「首席架構師推薦」關於React生態系統的一系列精選資源(3)
    - Javascript的不可變數據集合cortex - 用於使用React集中管理數據的JavaScript庫avers - 一個現代客戶端模型抽象庫imvvm - React的不可變模型 - 視圖 - 視圖模型morearty.js - 在純JavaScript中更好地管理Reactvaluable - React的不可變數據存儲react-resolver - 用於React組件的遞歸延遲加載數據的同構庫