初識React

初識React

React 來自于Facebook席楚,是的漩蟆,就是那個你們聽說過但是打不開的網(wǎng)站。React 起源于 Facebook 的內(nèi)部項目徙鱼,因為該公司對市場上所有 JavaScript MVC 框架都不滿意苍日,就決定自己寫一套惭聂,用來架設(shè) instagram的網(wǎng)站。做出來以后相恃,發(fā)現(xiàn)這套東西很好用辜纲,就在2013年5月開源了。所以說拦耐,很多東西都是有智慧的懶人創(chuàng)造的耕腾。在React的官方博客中明確闡述了React不是一個MVC框架,而是一個用于構(gòu)建組件化UI的庫杀糯,是一個前端界面開發(fā)工具扫俺。所以頂多算是MVC中的V(view)。經(jīng)過這幾年的沉淀固翰,React越來越強大狼纬,也受到了越來越多的開發(fā)者喜愛。

優(yōu)點

  • 復(fù)雜場景下的高性能
  • 代碼量的節(jié)省
  • 非常清晰的代碼結(jié)構(gòu)
  • 項目將來的可拓展性和可維護性

虛擬DOM

這可以說是一個全新的概念骂际,對于他的好壞疗琉,業(yè)界也是眾說紛紜,但是就我個人來說方援,我覺得這是一個重大的突破没炒。
所謂的虛擬DOM涛癌,就是如下的代碼:

ReactDOM.render( 
  <h1>Hello, world!</h1>, 
  document.getElementById('example')
);

ReactDOM.render 是 React 的最基本方法犯戏,用于將模板(即函數(shù)中的第一個參數(shù))轉(zhuǎn)為 HTML 語言,并插入指定的 DOM 節(jié)點拳话。而模板中的div其實和DOM中的div完全是兩碼事兒了先匪,只不過React提供了和DOM類似的Tag和API,事實上React會通過他自己的邏輯去轉(zhuǎn)化為真正的DOM弃衍。所以呀非,把這種叫做虛擬DOM。
使用虛擬DOM可以帶來的明顯好處就是,當有數(shù)據(jù)變動導(dǎo)致DOM變動時岸裙,React不是全局刷新猖败,而是通過它內(nèi)部的 dom diff算法計算出不同點,然后以最小粒度進行更新降允。這也是React號稱性能好的原因恩闻。

JSX

JSX是React的重要組成部分,他使用類似XML標記的方式來聲明界面及關(guān)系剧董。HTML 語言直接寫在 JavaScript 語言之中幢尚,不加任何引號,這就是 JSX 的語法翅楼,它允許 HTML 與 JavaScript 的混寫尉剩。

var names = ['Alice', 'Emily', 'Kate'];
ReactDOM.render( 
  <div> 
  { 
    names.map(function (name) { 
      return <div>Hello, {name}!</div> 
    }) 
  } 
  </div>, 
  document.getElementById('example')
);

上面代碼體現(xiàn)了 JSX 的基本語法規(guī)則:遇到 HTML 標簽(以 < 開頭),就用 HTML 規(guī)則解析毅臊;遇到代碼塊(以 { 開頭)理茎,就用 JavaScript 規(guī)則解析。這為我們的代碼編寫提供了極大的便利管嬉,而且JSX中除了使用HTML標記之外功蜓,并沒有復(fù)雜的標記,這種自然而直觀的方式直接降低了React的學(xué)習(xí)門檻并且讓代碼更容易理解宠蚂。

簡化可復(fù)用的組件

虛擬DOM(virtual-dom)不僅帶來了簡單的UI開發(fā)邏輯式撼,同時也帶來了組件化開發(fā)的思想,所謂組件求厕,即某個獨立功能或者界面的封裝著隆,達到復(fù)用或者UI和業(yè)務(wù)松耦合的目的。React推薦以組件的方式去重新思考UI構(gòu)成呀癣,將UI上每一個功能相對獨立的模塊定義成組件美浦,然后將小的組件通過組合或者嵌套的方式構(gòu)成大的組件,最終完成整體UI的構(gòu)建项栏。
React框架里面使用了簡化的組件模型浦辨,但更徹底地使用了組件化的概念。React將整個UI上的每一個功能模塊定義成組件沼沈,然后將小的組件通過組合或者嵌套的方式構(gòu)成更大的組件流酬。這種做法已經(jīng)在instagram 網(wǎng)站上普遍實施,大家可以看看instagram的前端源代碼列另。

與傳統(tǒng)組件有什么區(qū)別:
1芽腾、React通過功能來定義最小粒度的組件。
2页衙、React組件的生命周期:Mounting摊滔、Updating阴绢、Unmounting。

組件化:組件封裝艰躺,組件復(fù)用
組件封裝:封裝視圖呻袭、數(shù)據(jù)、變化邏輯(數(shù)據(jù)驅(qū)動視圖變化)
組件復(fù)用:props傳遞腺兴,復(fù)用

React 與 Vue 的本質(zhì)區(qū)別

1棒妨、vue 本質(zhì)是MVVM框架,由MVC發(fā)展而來含长。React 本質(zhì)是前端組件化框架券腔,由后端組件化發(fā)展而來
2、vue使用模板拘泞,React使用JSX
3纷纫、React本身就是組件化,沒有組件化就不是React陪腌。vue也支持組件化辱魁,不過是在MVVM上的擴展

總結(jié)

React為前端開發(fā)帶來許多便利,降低前端代碼的復(fù)雜性诗鸭,而且能夠保證性能保證質(zhì)量染簇,所以才能這么火,并且有這么多的人來加入React開發(fā)的行列强岸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锻弓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蝌箍,更是在濱河造成了極大的恐慌青灼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妓盲,死亡現(xiàn)場離奇詭異杂拨,居然都是意外死亡,警方通過查閱死者的電腦和手機悯衬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門弹沽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人筋粗,你說我怎么就攤上這事策橘。” “怎么了亏狰?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵役纹,是天一觀的道長。 經(jīng)常有香客問我暇唾,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任策州,我火速辦了婚禮瘸味,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘够挂。我一直安慰自己旁仿,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布孽糖。 她就那樣靜靜地躺著枯冈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪办悟。 梳的紋絲不亂的頭發(fā)上尘奏,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音病蛉,去河邊找鬼炫加。 笑死,一個胖子當著我的面吹牛铺然,可吹牛的內(nèi)容都是我干的俗孝。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼魄健,長吁一口氣:“原來是場噩夢啊……” “哼赋铝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沽瘦,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤柬甥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后其垄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苛蒲,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年绿满,在試婚紗的時候發(fā)現(xiàn)自己被綠了臂外。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡喇颁,死狀恐怖漏健,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橘霎,我是刑警寧澤蔫浆,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站姐叁,受9級特大地震影響瓦盛,放射性物質(zhì)發(fā)生泄漏洗显。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一原环、第九天 我趴在偏房一處隱蔽的房頂上張望挠唆。 院中可真熱鬧,春花似錦嘱吗、人聲如沸玄组。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俄讹。三九已至,卻和暖如春绕德,著一層夾襖步出監(jiān)牢的瞬間患膛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工迁匠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剩瓶,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓城丧,卻偏偏與公主長得像延曙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子亡哄,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

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

  • 一枝缔、插件或框架的好處 從久遠的時代到現(xiàn)在,我們的網(wǎng)頁更加動態(tài)化與強大蚊惯,大家在學(xué)習(xí)的過程中愿卸,發(fā)現(xiàn)或了解過很多很...
    追逐_e6cf閱讀 320評論 0 1
  • 在網(wǎng)上學(xué)習(xí)了關(guān)于react的介紹,先認識下react截型。 基于HTML的前端界面開發(fā)正變得越來越復(fù)雜趴荸,其本質(zhì)...
    Mx勇閱讀 297評論 0 1
  • 我對這種縮小十倍比例的物件,真是毫無抵抗力啊宦焦。 玩了一晚上的旅行分裝瓶发钝,開心得要飛起來了。
    圓柱體閱讀 225評論 0 0
  • 盛夏波闹,光照充沛酝豪,強悍,咄咄逼人精堕。給街道孵淘、給行人、給小區(qū)的花花草草留下了一些什么歹篓,或者沒有留下一些什么瘫证,您都無從知曉...
    喬橋閱讀 441評論 0 9
  • 常言道“學(xué)而不思則罔痛悯,思而不學(xué)則殆”余黎。 一直都希望自己能養(yǎng)成思考并記錄的習(xí)慣重窟。卻只有空想载萌,未能堅持去做。 如今生活...
    _栗子君閱讀 302評論 0 1