從Vue使用者的視角看React

兩者的優(yōu)缺點(diǎn)比較這里就不列了较木,沒啥子意義红符。

僅從個(gè)人主觀的觀察,Vue 的視頻教程數(shù)量要遠(yuǎn)遠(yuǎn)多于 React 相關(guān)伐债。

兩者在視覺上最大的區(qū)別應(yīng)該就是有沒有將結(jié)構(gòu)行為樣式相分離预侯,但注意,這些僅僅是視覺上給人的感受峰锁,實(shí)際上 template 中寫的東西也是要交給 render 函數(shù)去處理的萎馅。而這也是很多人爭論的點(diǎn)。

React embraces the fact that rendering logic is inherently coupled with other UI logic: how events are handled, how the state changes over time, and how the data is prepared for display.

Snipaste_2021-01-14_13-13-13.png
Snipaste_2021-01-14_13-15-03.png

趁著 Vue3 的間隙來看一波 React虹蒋,學(xué)的東西類似糜芳,如何插值飒货,如何響應(yīng)式,如何組件化峭竣。


React 沒有類似 v-if 指令的東西塘辅,那么列表遍歷渲染邏輯就不同了。

同樣 React 沒有采用 mustache 語法邪驮,那么如何將數(shù)據(jù)和 DOM 搞到一起也是個(gè)問題莫辨。

React 推薦使用的是 JSX,這貨和 TypeScript 與 JavaScript 的關(guān)系類似毅访,最終還是要搞成 JavaScript 代碼沮榜,至于這個(gè)過程是怎樣的就涉及到編譯原理的知識(shí)了。

不得不說前端的方言是真多喻粹。
JavaScript ===> TypeScript JSX
CSS ===> stylus less sass
HTML ===> markdown
DOM ===> VDOM

又到了立flag的時(shí)候了

來看一波場景

// 如何將數(shù)據(jù)弄到DOM中
<h1>{{title}}</h1>

const element = <h1>{title}</h1>
// 如何將數(shù)據(jù)插入到元素屬性上
<img :src=user.avatarUrl />

const element = <img src={user.avatarUrl} />

組件方面蟆融,Vue更多地使用單文件格式,而React可以使用函數(shù)組件和class組件守呜,且組件名要大寫開頭型酥。

function Welcome(props) {
    return <h1>Hello, {props.name}</h1>
}

好吧,上面就是一個(gè)函數(shù)組件了查乒,它和普通普通函數(shù)相比弥喉,在于 return 的地方,其實(shí)是 return 了一個(gè)對象玛迄。當(dāng)然了由境,也可以使用類組件,要繼承 React.Component蓖议,更多地使用函數(shù)組件虏杰。

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

那么,接下來如何將 props 值傳給組件勒虾?

// Vue
<Welcome :name=name></Welcome>
// React
const element = <Welcome name={name} />;

接下來是生命周期纺阔,和Vue使用上沒啥區(qū)別,名字不同修然。

接下來是事件處理笛钝,都是要編寫處理函數(shù)的。

// vue
<button @click="activateLasers">
</button>

// react
<button onClick={activateLasers}>
  Activate Lasers
</button>

緊接著是條件渲染愕宋,在 Vue 中會(huì)使用 v-if 指令婆翔,而在 React 中使用 JSX 可以根據(jù)值return不同的組件。就按照 JavaScript 的邏輯來看就好掏婶。忽然有點(diǎn)想投入 React 的懷抱了啃奴。

// react
function Greeting(props) {
  const isLoggedIn = props.isLoggedIn;
  if (isLoggedIn) {
    return <UserGreeting />;
  }
  return <GuestGreeting />;
}

下面是列表渲染,在Vue中使用v-for,前面提到過 React 沒有指令這一套雄妥,還是使用JSX最蕾。

const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) =>
  <li>{number}</li>
);
ReactDOM.render(
  <ul>{listItems}</ul>,
  document.getElementById('root')
);

當(dāng)然了依溯,你不用map也可以,foriin也不攔著瘟则,能遍歷就完事了黎炉。這里也有key的概念,和Vue中的key類似醋拧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慷嗜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丹壕,更是在濱河造成了極大的恐慌庆械,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菌赖,死亡現(xiàn)場離奇詭異缭乘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)琉用,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門堕绩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人邑时,你說我怎么就攤上這事奴紧。” “怎么了晶丘?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵黍氮,是天一觀的道長。 經(jīng)常有香客問我铣口,道長滤钱,這世上最難降的妖魔是什么觉壶? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任脑题,我火速辦了婚禮,結(jié)果婚禮上铜靶,老公的妹妹穿的比我還像新娘叔遂。我一直安慰自己,他們只是感情好争剿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布已艰。 她就那樣靜靜地躺著,像睡著了一般蚕苇。 火紅的嫁衣襯著肌膚如雪哩掺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天涩笤,我揣著相機(jī)與錄音嚼吞,去河邊找鬼盒件。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舱禽,可吹牛的內(nèi)容都是我干的炒刁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼誊稚,長吁一口氣:“原來是場噩夢啊……” “哼翔始!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起里伯,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤城瞎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后俏脊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體全谤,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年爷贫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了认然。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡漫萄,死狀恐怖卷员,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腾务,我是刑警寧澤毕骡,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站岩瘦,受9級特大地震影響未巫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜启昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一叙凡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧密末,春花似錦握爷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至刹碾,卻和暖如春燥撞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工物舒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辆布,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓茶鉴,卻偏偏與公主長得像锋玲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子涵叮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容