Vue比React有什麼優點嗎?
Vue能做什麼,React不能做?
React能做什麼,Vue不能做?
好像沒啥,O(∩_∩)O哈哈~
React組件是函數,所以寫React組件其實就是在寫函數,寫一個什麼樣的函數呢?一個接收 `props` 作為參數的函數,至於 `props` 這個參數中包含什麼那就您隨意了,所以js這門語言所擁有的都可以看做是React擁有的,比如高階組件不就是高階函數嘛~
Vue的組件也是函數,只不過寫Vue組件卻不是在寫函數,而是在寫函數的參數,比如:
export default {
name: FuckComp,
created () {
console.log(fuck fuck fuck)
},
props: [a, b]
}
這不就是一個普通的對象嘛,可以看到 `props` 只是參數的一部分。
以上是內容說明什麼呢?打個比喻,比如實現: debounce(func, [wait=0], [options={}])
函數。用React實現就像是你需要完全自己開發:
function debounce (func, wait, options) {
// ... 具體實現你自己去寫
}
而用Vue實現就像你僅僅需要傳遞一個配置對象:
// 你只需要告訴我你要的是什麼,具體我幫你實現
{
fn: func,
wait: 0,
options: {}
}
從這個角度來看的話我們還可以舉一個不嚴謹的例子:把React比作nodejs,那麼Vue就是Koa。
Vue說它簡單,理由是:React組件是函數,Vue組件是高度封裝的函數。
React說它擁有完全的JavaScript能力,理由也是:React組件是函數,Vue組件是高度封裝的函數
所以你看,優點不優點的,最後不都看個人口味嗎。
用Vue真的很爽就像在吃糖,但有時候React的靈活真的也能讓你有種想要大展才華的快感。
==========以下內容嚴重存在廣告嫌疑,慎看==========
再多說兩句,正是因為React組件就是函數,所以在React中很流行高階組件;而Vue組件是高度封裝的函數,你想想,單純的函數你怎麼玩都可以,但是別人丟給你一個封裝過的函數讓你玩,那你就沒那麼自由了。而這也是Vue中高階組件的概念不被提倡和不流行的原因。但是在Vue中一樣可以玩高階組件,有興趣請點擊:
探索Vue高階組件hcysun.me這兩一比較,Angular 成為了最大輸家
甲之蜜糖,乙之砒霜。
Vue雖然看起來還是JS,但確實可以當做一個自有語言了,因為你只能照著他那樣去做而不能像寫一個普通的方法或者class一樣。
比如函數式組件,react的話,函數式組件就真的只是一個函數,Vue呢?
{
functional: true
}
而且vue還不能很隨便,因為存在某些地方沒有注入h的問題。
雖然JSX有了,意外的好用。
{
render() {
return &Hello Vue.&
}
}
函數式也有了,甚至模板函數式也有了。
&
&
&
class寫法組件也有了。
class Component extends Vue {}
但是還是怎麼用都覺得怪怪的。(以上實現需要各種babel插件,函數式不用)
因為我始終找不到如何實現成這樣
class Component extends Vue {
render() {
return &
Hello Vue.&
}}
而且很明顯的區別就是,React你用到最後還是覺得自己在寫JavaScript,所以JavaScript的基礎要很紮實很紮實很紮實。Vue大家都覺得簡單問題也就在於,不管你在Vue中做什麼,Vue都是預先幫你準備好了想好了,所以才簡單吧。
另外就是狀態管理。隔壁的redux可以說是很獨立的東西了,Vue也可以用redux。但redux始終是一個很麻煩的東西,要不然React社區就不會有各種thunk, saga之類的東西了,也不會有一個集大成的dva了。更不會有mobx什麼的百花齊放了。
你看看vuex,就一個,冷靜。而且直接就有saga和thunk的影子。
作為vue的專屬工具,vuex是直接以插件的形式注入到環境的。所以甚至你可以直接 `this.$store`就能摸到狀態管理了。雖然很不推薦就是了。
所以我是有點信其他回答提到的:如果Vue哪一天核心崩了,生態就崩了。
最後,雖然我是看了一眼react就入門vue,最後通過vue-jsx去學react的,實際上在很多情況下這兩個東西是完全一樣的,可能最多就是操作數據的手感不一樣吧。然後至於用什麼完全就是看一起工作的人能用什麼,因為我剛剛經歷了一次要換框架結果換不成的情況……
React:我有 JSX!我擁抱 JS!
Vue:我簡單啊。
React:我生態好!我組件多!
Vue:我簡單啊。
React:我純函數純組件!我函數式不可變!
Vue:我簡單啊。
所以說你們為什麼要引戰……
認真的說幾點,前幾個月正好做了一次框架選型:
- Vue 簡單是真的,React 生態好也是真的。大部分場景下,其實都行……
- 選型不僅考慮框架,還要考慮團隊成員等別的因素。
- 如果以上都差不多,就選你最熟悉的,確保項目不會崩,按時上線。
- 我用 React,但對 Vue 同樣持有敬意。
寫vue就跟寫小程序一樣,自創了一些寫法。
寫react就跟寫原生js一樣,該怎麼寫就怎麼寫。
如果說vue是規範了一個框架,那麼react更像是基於原生js衍生出來的編程思想的應用。
寫vue和寫react都不難,是吧,如果你覺得使用其中一個做項目有難度,那說明經驗不足,還很菜啊。
主要還是靠JS。
Vue吸收了Web Component的思想精華,提供統一方便的開發模式。而React是基於js函數式編程思想衍生出來的。因此Vue對初學者來說確實很方便,屏蔽非常多的細節。而React則是只暴露基礎的生命周期,更多的實現和邏輯細節都是開發者要關注的。長期來看,學習React的收益更高。譬如很久不寫Vue突然要寫一個項目,離開Vue文檔是困難的。而很久沒寫React還是能迅速順藤摸瓜、快速切入,因為思想已經被吸收了。
前端就是愛折騰,像我們寫Java和C++的,老本就夠吃幾年的,最近兩年還出現了個腳手架這個新名詞,可見前端之繁榮……
其實vue 1.0的時候更有特點:父子組件間的事件交互更方便。父子組件間的數據雙向綁定更容易,更容易利用數據分治來解決複雜問題。
2.0把這兩處大幅度刪減之後,二者其實差不多了。Vue ≈ Reactjs + Mobx
文檔好看,上手快。
.vue模板依然遵循html/js/css三者分離的結構,相比較All-in-js的Reactjs而言,對於部分人而言,入門的心理門檻低。全家桶對容易犯選擇恐懼症的人群免疫,一套足矣vuejs + vue-router + vuex。題主只問優點,缺點我就不說了。都是響應式框架,開發業務都沒有任何問題。Vue適合於響應式框架的初學者,因為API很完全,不會的東西可以很快搜到答案,React適合對設計有所追求的開發者,因為React的API很少,對開發沒有過多的約束,可以更大程度發揮前端創造性。另外RN相對於Weex也更加成熟一些。
他們能做的angular都能做
假設開發一個web App:
- 50個路由
- 80個頁面
- 100個介面
如果按照一個正常3年經驗的前端,有一年Vue開發經驗,一年React經驗,且有足夠的多的前置知識。我覺得兩個框架在開發效率上應該會差不多。
但是考慮到學習成本,生態環境,腳手架構建工具,從零到有,上手難易程度來說Vue優勢很大。(相對時間)
vue-cli、Vue、Vue-router、Vuex、axios
學習時長30天,項目骨架搭建3天,開發時間90天
create-react-app、React、Redux、React-route@4、fetch
學習時長40天、項目骨架搭建10天、開發時間80天
dva-cli、antd
掌握React基礎上學習時長10天、項目骨架搭建1天、開發時間70天
最後,反正兩個都要學,leader說用啥就用啥。
小,輕,快
我司用react我覺得還好用呀vue學過一些 入門還是很簡單的但是現在感覺還是更習慣了react 呢