標籤:

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.& }
}

函數式也有了,甚至模板函數式也有了。

&