前端框架用vue還是react?小孩子才做選擇題

vue or react?That's a question.

前言

近兩年前端技術層出不窮,目前市面上已經有了很多供前端人員使用的開發框架,轉眼19年已過大半,前端框架領域日趨成熟,實現了三足鼎立的局面,老大哥Angular依然佔據了半壁江山,react和vue也勢頭強勁,迎頭趕上,在國內發展迅速,形勢一片大好。

最近在學習使用框架的時候,分別使用vue和react開發了兩個移動端產品,對這兩個框架的學習曲線有了一些感悟,這兩個都是現在比較熱門的js框架,它倆在使用方式上和學習複雜度上還是有很大區別的,這裡簡單總結下兩者的差異。

主要從以下幾個方面入手方面展開:

  • 框架的誕生
  • 設計思想
  • 編寫語法
  • 腳手架構建工具
  • 數據綁定
  • 虛擬DOM
  • 指令
  • 性能優化
  • 原生渲染native
  • ssr服務端渲染
  • 生命週期函數
  • 銷燬組件
  • 狀態集管理工具

誕生

vue

vue由尤雨溪開發,一開始是個人項目,目前由餓了麼ued團隊進行維護。vue近幾年來特別的受關注,三年前的時候angularJS霸佔前端JS框架市場很長時間,接著react框架橫空出世,因為它有一個特性是虛擬DOM,從性能上碾軋angularJS,這個時候,vue1.0悄悄的問世了,它的優雅,輕便也吸引了一部分用戶,開始受到關注,16年中旬,VUE2.0問世,不管從性能上,還是從成本上都隱隱超過了react,火的一塌糊塗,這個時候,angular開發團隊也開發了angular2.0版本,並且更名為angular,吸收了react、vue的優點,加上angular本身的特點,也吸引到很多用戶,目前已經迭代到8.0了。友情提示注意下vue的誕生時間,如果正好有小夥伴在面試,被問到你是從什麼時候開始接觸並且使用vue的,你要是回答用了5、6年了那場面就十分尷尬了。

react

起初facebook在建設instagram(圖片分享)的時候,因為牽扯到一個東西叫數據流,那為了處理數據流並且還要考慮好性能方面的問題,Facebook開始對市場上的各種前端MVC框架去進行一個研究,然而並沒有看上眼的,於是Facebook覺得,還是自己開發一個才是最棒的,那麼他們決定拋開很多所謂的“最佳實踐”,重新思考前端界面的構建方式,他們就自己開發了一套,果然大牛創造力還是很強大的。

React 起源於 Facebook 的內部項目,因為該公司對市場上所有 JavaScript MVC 框架,都不滿意,就決定自己寫一套,用來架設Instagram 的網站。做出來以後,發現這套東西很好用,就在2013年5月開源了。

設計思想

vue

vue的官網中說它是一款漸進式框架,採用自底向上增量開發的設計。這裡我們需要明確一個概念,什麼是漸進式框架。在聲明式渲染(視圖模板引擎)的基礎上,我們可以通過添加組件系統(components)、客戶端路由(vue-router)、大規模狀態管理(vuex)來構建一個完整的框架。Vue從設計角度來講,雖然能夠涵蓋所有這些內容,但是你並不需要一上手就把所有東西全用上,因為沒有必要。無論從學習角度,還是實際情況,這都是可選的。聲明式渲染和組建系統是Vue的核心庫所包含內容,而客戶端路由、狀態管理、構建工具都有專門解決方案。這些解決方案相互獨立,你可以在核心的基礎上任意選用其他的部件,不一定要全部整合在一起。可以看到,所說的“漸進式”,其實就是Vue的使用方式,同時也體現了Vue的設計的理念。

react

react主張函數式編程,所以推崇純組件,數據不可變,單向數據流,當然需要雙向的地方也可以手動實現,比如藉助 onChange 和 setState 來實現一個雙向的數據流。而vue是基於可變數據的,支持雙向綁定,它提供了v-model這樣的指令來實現文本框的數據流雙向綁定。

編寫語法

vue

vue推薦的做法是webpack+vue-loader的單文件組件格式,vue保留了html、css、js分離的寫法,使得現有的前端開發者在開發的時候能保持原有的習慣,更接近常用的web開發方式,模板就是普通的html,數據綁定使用mustache風格,樣式直接使用css。其中


分享到:


相關文章: