首先說一下我vue跟react都用過献酗,先學的vue,后學的react坷牛,在公司用react做過三個月業(yè)務開發(fā)(大數(shù)據(jù)管理平臺罕偎,反正就是后臺管理系統(tǒng),什么左邊是樹京闰,右邊是table颜及,taoble上面是各種搜索選擇按鈕,點進去詳情頁或者彈窗)蹂楣,在公司vue只是寫過很簡單的東西俏站,vue用的較多的地方是用于畢設(shè)寫前臺(交易平臺,展示商品那些東西)痊土。其實兩者來說都有一定的實踐肄扎。之所以更青睞react最主要是因為react有hooks。我目前只用過hooks而沒用過hooks的輪子-umi(確實用了hooks會比原來class少寫很多代碼),相信用了hooks的輪子(相當于element-ui之vue犯祠,ant-design之react)萌丈,大大提高開發(fā)效率。
一雷则、react開發(fā)團隊牛逼辆雾、長遠來看更穩(wěn)定
首先vue是尤雨溪為代表的團隊進行開發(fā),layui是誰開發(fā)的月劈,閑心度迂,再看看layui社區(qū),基本上都不怎么去回答問題猜揪。而且很多插件都是官方的惭墓,比如vue-cli,vue-router而姐,基本上都是官方給的腊凶。而react是facebook里面頂級高級牛逼哄哄的工程師團隊開發(fā)的,而且react團隊只對核心代碼進行維護拴念,剩下的插件都交給社區(qū)钧萍,比如路由啦,redux啦政鼠,通通是其他非react團隊開發(fā)风瘦,這樣一來精力會更集中。而且個人項目風險很大公般,哪一天vue不維護了万搔,很難受。而且精力有限官帘,啥插件都vue團隊來開發(fā)來維護瞬雹,沒有像react插件相互競爭,方式可能沒那么好刽虹,因為得所有事情都做好酗捌,當然現(xiàn)在vue也做的挺好,啥插件都有状婶,vue全家桶都很完整意敛,開箱即用馅巷,基本上react全家桶有的東西vue也抄過去了膛虫。
二、react有了hooks钓猬,打破了react學習難度大一說
如果說react沒這個東西我是不會那么大力支持react稍刀。因為react寫的代碼會多一些。得去一段時間理解react的生命周期。會比vue上手難一些账月。
先說說組件化综膀。為什么市面上除了老項目會使用jq,大部分都會使用現(xiàn)代框架局齿。(現(xiàn)代框架指angular剧劝、vue、react三大框架抓歼,傳統(tǒng)框架指jq)讥此。一般來說看學什么框架用什么框架看大部分中小型企業(yè)用什么,就學什么谣妻,用什么萄喳,這個絕對錯不了。只有大廠有那個精力和財力去各種折騰各種嘗試蹋半,發(fā)現(xiàn)這個框架不行再用另一個他巨。jq之所以淘汰是因為jq的出現(xiàn)最大的意義在于兼容各種瀏覽器,減少原生代碼書寫〖踅現(xiàn)在IE不需要兼容了染突,所以jq也基本上結(jié)束了。而且操作dom會帶來性能瓶頸辈灼。vue或react都有的虛擬dom會大大減少真實dom操作觉痛,所以用vue或react體驗會好非常多,頁面切換很快茵休,而且代碼也少寫非常多薪棒,大大提高開發(fā)效率。組件化就是封裝榕莺,把一個個組件封裝起來俐芯,多處調(diào)用。
用了現(xiàn)代框架大家就會知道組件化到底有多爽钉鸯。但是還不夠爽吧史,還有更爽的,那就是hooks唠雕。
現(xiàn)在說這個可能有點超前贸营。反正組件化的意思就是封裝一個UI和邏輯,封裝好了之后可以多處調(diào)用岩睁,但是比如UI相同钞脂,邏輯不同,那就得封兩個組件捕儒。怎么解決這個問題呢(使用過一段時間現(xiàn)代框架就會發(fā)現(xiàn)這個問題)冰啃。hooks有個好處就是可以封裝邏輯邓夕。我個人看了這篇覺得https://zhuanlan.zhihu.com/p/103150605?utm_source=wechat_session,hooks是又一大進步阎毅。如果說vue或react是jq一個非常大的進步焚刚,那么hooks就是組件化的另一個更高的進步。大家都說react難用扇调,但是有了hooks矿咕,不再需要管那些復雜多變的生命周期,會useState和useEffect就可以了狼钮。所以說react再用上hooks痴腌,不存在react成本高一說。
如果react+antd+umi對比vue+element-ui(vue-hooks還不成熟)燃领,有沒有可能代碼更少士聪,我不知道,因為我沒用過umi猛蔽,但是我很期待剥悟。
為什么用了vue還用element-ui,因為element-ui已經(jīng)幫你封裝了大量的輪子曼库,拿來即用区岗,大大減少代碼,基本上自己再封裝一下業(yè)務組件就夠用了毁枯。如果說我們使用hooks再配個umi慈缔,那相比簡直就是如虎添翼,又進一步少寫代碼种玛。起飛了呀藐鹤。
hooks是react16.8才有的,還很新赂韵。而且很多公司還沒開始用這個娱节,所以大家固有的react更難是因為大家沒用過hooks,包括我之前在公司他們用的也是class寫法(加入時hooks已經(jīng)存在了)祭示,非常麻煩肄满。但是antd4.0既然敢用hooks替代class寫法說明1.class真的問題很大,2.hooks是非常成熟的质涛,不然也不敢隨意在新版本全部替代成hooks寫法稠歉。
三、更適合后臺管理系統(tǒng)
我們這個項目都是各種后臺管理系統(tǒng)汇陆,(表格啊怒炸,詳情啊,搜索啊瞬测、樹横媚、表單啊那些東西),我覺得react會更適合一些月趟。
還有就是react兼容ts更成熟一些灯蝴。ts也是一大趨勢。vue3.0源碼已經(jīng)是ts來寫孝宗。vscode就是electron還有ts來寫穷躁。我在面試的時候很多企業(yè)也在打算之后用ts來寫代碼。ts更適合大型項目因妇。因為大型項目有些bug如果找不到是很痛苦的问潭。有些bug就是因為這個類型的問題。ts是強制讓你number類型就是number類型而不是js的沒有類型婚被。傳啥都可以狡忙。