React入門(有門才可以)

    前提聲明:此React系列,側(cè)重點是如何快速上手寫React代碼,對于一些基礎(chǔ)的概念不會詳細闡述,快速上手寫代碼,上手寫代碼,寫代碼(重要事情說三遍)

React簡介

這一款由Facebook出品的,用于構(gòu)建用戶界面的JavaScript框架

React核心編程思想

一.小歷程

??1.前端開發(fā),需要手動管理,操作DOM和監(jiān)控控件狀態(tài)變化,過程繁瑣,如此在大規(guī)模應(yīng)用情景下維護困難.

??2.解決頻繁操作DOM,那么,我這樣如何-每次狀態(tài)有更新的情況下重新渲染整個UI,便可省去一次一次手動改變DOM操作.

??3.新的問題來啦,每次都需要重新渲染整個UI效率低下,所以這個時候厲害的角色上場了,Virtual DOM!


厲害了,Virtual DOM 是什么鬼,必須得有小三插腳解釋下,場面才不會那么混亂.

–––––––––––––––––小三解釋虛擬DOM:–––––––––––––––
*1.概念
??虛擬 DOM 是在 DOM 的基礎(chǔ)上建立了一個抽象層,我們對數(shù)據(jù)和狀態(tài)所做的任何改動,都會被自動且高效的同步到虛擬 DOM坛缕,最后再批量同步到 DOM 中忿墅。React 會在內(nèi)存中維護一個虛擬 DOM 樹白华,當我們對這個樹進行讀或?qū)懙臅r候务傲,實際上是對虛擬 DOM 進行的.


*2.茍且之事的過程是是這樣的
??1>.數(shù)據(jù)更新;
??2>.React 會自動更新新虛擬DOM;
??3>.通過對比新虛擬DOM和舊虛擬DOM找出不同點(different),得到一個Patch;
??4>.將這個Patch放到一個隊列中;
??5>.最終'批量'更新Patch到DOM中;
這種事情怎么可能沒圖了,太不正常了(捉奸捉臟)
!

01_Virtual DOM.png


??4.把所有的HTML組件都抽象化JS中,不在需要HTML模板,直接在JS中寫HTML;如何實現(xiàn)在如此霸道直接的操作,JSX來啦;Facebook在PHP已經(jīng)使用XHP很久了,把那套方法搬到JavaScript上就成了JSX譬巫。

JSX小語法小演示:
    <script type="text/babel">
        let title=(<div><strong>Hello JSX</strong></div>);
        ReactDOM.render(
                title,
                document.querySelector('#app')
        )
    </script>

??5.UI的狀態(tài)和獲取的數(shù)據(jù)需要分開處理组哩,使用state和props的概念來區(qū)分它們等龙。

二.組件化

??除了不需要對DOM進行直接操作,提高性能;React中還有一個重要的思想是組件化,即UI中的每個組件都是獨立封裝的,同時,由于這些組件獨立于HTML,使他們不僅可以運行在瀏覽器里,還可以作為原生應(yīng)用的組件來運行.(組件類比積木,每塊小的積木都是獨立的一部分,能夠?qū)崿F(xiàn)特定效果)

React實操

其實我就是想寫個'Hello World';

一.前提準備

1.需要引入三個基本依賴文件(文件如何下載我就不廢話了,npm,bower等都行,你開心就好~)

    /*1>.react.js文件是創(chuàng)建React元素和組件的核心文件处渣,
      2>.react-dom.js文件用來把React組件渲染為DOM伶贰,
    此文件依賴于react.js文件,需在其后被引入罐栈。
      3>.Babel的主要用途是轉(zhuǎn)換新標準的JavaScript代碼為瀏覽器現(xiàn)今兼容的代碼黍衙,同時它也提供JSX語句的轉(zhuǎn)換;*/
    <script src="lib/react.js"></script>
    <script src="lib/react-dom.js"></script>
    <script src="lib/babel.min.js"></script>

二.直接擼Hello World

<body>
    <div id="app"></div>
    
    <script type="text/babel">
        //ReactDOM.render 是 React 的最基本方法荠诬,用于將模板轉(zhuǎn)為 HTML 語言琅翻,并插入指定的 DOM 節(jié)點。
        ReactDOM.render(
                <h3>welcome</h3>,
                //document.querySelector()獲取指定節(jié)點(方法很多)
                document.querySelector('#app')
        )
    </script>
</body>

三.組件化Hello World

??這兒有個重要問題必須討論,擦擦,為什么你這兒React組件要醬樣子定義,貌似和我的不一樣,要開車啦;
??React推出后柑贞,出于不同的原因先后出現(xiàn)三種定義react組件的方式方椎,殊途同歸;具體的三種方式:
1.函數(shù)式定義的無狀態(tài)組件
2.es5原生方式React.createClass定義的組件
3.es6形式的extends React.Component定義的組件
推薦閱讀,不重復造輪子了,總結(jié)的挺好:React創(chuàng)建組件的三種方式及其區(qū)別

//此處直接上現(xiàn)在推薦的方法啦~
<body>
    <div id="app"></div>
    
    <script type="text/babel">
        class HelloWorld extends React.Component {
            constructor() {
                super();
                this.state={
                    msg:''
                };
            }
            render(){
                return (<div>
                    <input type="text" defaultValue="abc" />
                </div>)
            }
        }

        ReactDOM.render(
                <HelloWorld />,
                document.querySelector('#app')
        )
    </script>
</body>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钧嘶,一起剝皮案震驚了整個濱河市棠众,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌有决,老刑警劉巖闸拿,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異书幕,居然都是意外死亡新荤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門台汇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苛骨,“玉大人篱瞎,你說我怎么就攤上這事⊙髦ィ” “怎么了奔缠?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吼野。 經(jīng)常有香客問我校哎,道長,這世上最難降的妖魔是什么瞳步? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任闷哆,我火速辦了婚禮,結(jié)果婚禮上单起,老公的妹妹穿的比我還像新娘抱怔。我一直安慰自己,他們只是感情好嘀倒,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布屈留。 她就那樣靜靜地躺著,像睡著了一般测蘑。 火紅的嫁衣襯著肌膚如雪灌危。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天碳胳,我揣著相機與錄音勇蝙,去河邊找鬼。 笑死挨约,一個胖子當著我的面吹牛味混,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诫惭,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼翁锡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夕土?” 一聲冷哼從身側(cè)響起馆衔,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隘弊,沒想到半個月后哈踱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡梨熙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年开镣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咽扇。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡邪财,死狀恐怖陕壹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情树埠,我是刑警寧澤糠馆,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站怎憋,受9級特大地震影響又碌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绊袋,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一毕匀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧癌别,春花似錦皂岔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圾笨,卻和暖如春教馆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背墅拭。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工活玲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谍婉。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像镀钓,于是被迫代替她去往敵國和親穗熬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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

  • 參考文章:深度剖析:如何實現(xiàn)一個Virtual DOM 算法 作者:戴嘉華React中一個沒人能解釋清楚的問題——...
    waka閱讀 5,965評論 0 21
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評論 25 707
  • 原教程內(nèi)容詳見精益 React 學習指南丁溅,這只是我在學習過程中的一些閱讀筆記唤蔗,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,833評論 1 18
  • 按照慣例窟赏,先給ReactJS背書 React是一個Facebook開發(fā)的UI庫妓柜,于2013年5月開源,并迅速的從最...
    艾倫先生閱讀 3,234評論 1 12
  • 天 藍藍的面孔 陰沉下來 天 要流淚了嗎涯穷? 不棍掐! 聽 那沙沙的雨聲 是春的腳步 看 那嘀嗒的水滴 是春的汗水。
    就愛嗑瓜子閱讀 313評論 5 3