天天看點

react VS vue 我們究竟該如何選擇(從項目的角度幫你分析)

一、序言

  現在web開發最火的兩個架構,react和vue。聽起來就感覺很牛逼的樣子。确實,不得不服,創造出這2種架構的人真的是牛逼。不過更牛逼的是為這2中架構不斷完善的人。一個優秀的idea,會在很短的時間内被孵化、不斷完善,這就是網際網路的魅力。

好了,閑話不多說,我們進入正題。如果想看結論的,直接點選   這裡  吆!

二、react 、 vue 、 我

  在讨論這兩個架構之前,先和廣大朋友們說清楚。本部落格不摻雜太多的主觀色彩,完全從個人工作中的使用情況和大家談着2中架構。

    先簡略交代一下我對這兩個架構的接觸過程(可以直接跳過)

    因為以前都是 angularjs 開發,是以,我第一個接觸的是 vue 。資料綁定等衆多相似之處,讓我下意識的就選擇了他。但是很可惜,那會網上資料不多,而且還是1.0版本,再加上工作中沒有項目需要,我隻是研究過一段時間的文檔,并沒有具體的項目開發。os:遺憾

    後來,因為工作的需要,直接接觸 react 做公司的OA系統。剛接觸的時候,說實話, react 的 文法讓你很難受,開發起來報錯頻繁,是以上手頗難,但是熟悉之後發現,react開發真的是好用,而且他的社群超級龐大,各種優秀的團隊開發了很多現成的東西,為你的開發節省了大量時間。這裡吐槽一下,80%的程式猿用代碼,隻有20%的程式猿在創造代碼。不過這也是無奈之舉,畢竟,作為一名員工第一職責是快、準、好的完成工作。os:沒有面包,怎麼談理想。

    不過,還是強烈建議大家,有時間,多在網上交流,分享一下自己的想法。網際網路之是以強大,程式猿之是以工資高。離不開大家的分享的。都閉門造車,遲早會完蛋的。無論你水準高低,精心準備的東西,總會對别人産生幫助。

    說多了,我們繼續!自打用了react之後,部落客就一直用,但是隻是局限于中背景的管理系統。後來因為工作需要做手機頁面的單頁webapp,部落客實作做了不少調查。發現手機端的單頁應用還是 vue 比較好。原因有很多。咱們慢慢聊:

     (1)我發現 vue2.0 特别厲害,react能做的,他都能做,功能上沒什麼差别,以前的許多bug都已經修改過了。os: 官方很強大啊,社群也厲害

     (2)vue 文檔超級詳細,真的是小白入門寶典。直接度給你100年功力的那種,很詳細。

     (3)vue 的 動畫過度效果很好。文檔詳細,效果牛逼,還能很友善的引入插件。

     (4)vue 上手簡單,真的很簡單,很大程度上依賴于開發者對 HTML變成的習慣,以及 對 angularjs 的熟悉。貼别是資料綁定。

    再就是資料驅動的理念好了解,開發者隻需要關注資料,其他工作都是vue幫你完成了,是以感覺簡單。

     (5)vue 小巧、輕便。vue生産環境的壓縮包很小20多KB,腳手架可定制,對項目開發哈市很友好的。

     總之,看到他有那麼多有點之後,我就用了,因為世界代碼是一家,我有react的開發經驗,學習vue可以說是很輕松,他們的思想。實作方式很多地方都是共同的。

三、vue、react 與 項目架構選擇

    再次聲明,以下觀點,純屬個人感受,不代表任何官方意見

    我以工作中的體會,來和大家分享着2個架構的選擇

    1. vue 适合 webapp,适合做使用者互動多、各種動态效果變化豐富的應用。特别是PC、手機的網頁版 商城等頁面。

    原因: vue 實作邏輯複雜的功能比較簡單,跟寫js似的,而且一些效果、過度感覺很舒服。社群這部分資源也比較多、

    2. react 适合 oa系統,适合 大批量的資料展示、适合做大型應用。特别适合公司的背景作業系統。

    原因: react 對那種比較複雜的互動,實施起來比較麻煩,沒有vue那麼友善。再就是他的渲染原理是渲染整個元件樹(除非你做詳細設定),是以,一方面費性能,而且代碼寫起來,邏輯很複雜。但是react對批量資料操作很厲害。還有螞蟻的antd,頂一個。

    3. 涉及到混合開發,我個人覺得看情況。純H5的混合, 用 reactNative ;如果50%左右那種,vue+react都可以,具體情況分析吧;10%那種,啥也别用了,直接html+js接入頁面。

 4. 項目要求的比較高的項目适合用react。 因為react的社群更活躍一些,尤其是各種UI架構比較穩定、系統,可以信賴。Vue的社群也很活躍,相對來說各種元件五花八門,大多數不夠完善、缺乏系統性和疊代。對于項目的後期維護或者新人入手都不友好。

   5.  從應用上看。react打出來的包會大一些,相對來說,Vue打出來的包小一些。如果項目場景對加載速度有要求,建議用Vue

   6.  最後加點個人偏見。我個人覺得react調試更友善,他的資料自上而下,通過props以流的形式一層層往下渲染,當然這樣的算法會導緻多餘的渲染,根結點一變,他下邊的都得重新渲染。而Vue是資料驅動,具體的不太了解,粗淺的認為也是監聽,不過哪個監聽點變化,就是重新渲染哪裡,貌似效率更高。但是資料調試沒那麼友好,而且這個監聽的底層原理我覺得并沒有那麼高效。  ps:偏見、偏見,濃濃的個人感情色彩,大家看看就好

總結:

  我個人是 做OA就用 react; 做 webapp,一般用vue,互動複雜得用,互動不複雜,項目一般比較簡單,還是得用vue。APP開發,就看情況了。

        網上各種迷粉各種噴的,受不了,有啥用。哔哔一大頓,不如幫人家解決個問題來的實在。這裡都是我的一家之言,若有纰漏之處,或者言論錯誤,還希望大家指出。(喜歡我部落格的可以關注我,後期會不定時發 vue、react的開發教學部落格)