談?wù)剰?開始快速學(xué)習(xí)React Native(一)

React Native是基于React的细卧,在開發(fā)React Native過程中少不了的需要用到React方面的知識(shí)耸弄。雖然官方也有相應(yīng)的Document瞳筏,但篇幅比較多闺属,學(xué)起來比較枯燥。

我可以說是從0開始學(xué)習(xí)React Native周霉,之前學(xué)習(xí)的人少掂器,自己也走了不少彎路,以后能把自己的一些想法或者是學(xué)習(xí)方法寫出來分享一下俱箱,讓后來學(xué)習(xí)的同行們少走一些彎路国瓮。(最好先學(xué)習(xí)一下reactjs)

自己理解的React(我們需要了解的東西)

1.React?

2.React的特點(diǎn)

3.JSX語法

4.組件(Component)

5.組件的屬性狞谱、狀態(tài)


一乃摹、什么是React?

React是一個(gè)用于組建用戶界面的JavaScript庫芋簿,讓你更加簡單的方式來創(chuàng)建交互式用戶界面峡懈。

個(gè)人認(rèn)為的優(yōu)點(diǎn)吧:

1.React就是由許多個(gè)組件來組合而成的。

2.數(shù)據(jù)改變的時(shí)候与斤,React能高效的更新和渲染更新的組件肪康。

3.聲明性視圖讓你的代碼容易調(diào)試,自己能預(yù)測出效果

4.封裝管理自己的狀態(tài)組件撩穿,將他們組成復(fù)雜的界面磷支。

5.由于組件邏輯是用JavaScript編寫的,可以輕松地通過程序傳遞大量數(shù)據(jù)食寡,并保持DOM狀態(tài)雾狈。

6.一次學(xué)習(xí)隨時(shí)隨地可以編寫,學(xué)會(huì)了React抵皱,不僅可以輕松的開發(fā)web善榛,也可以用于React Native來開發(fā)Android+ios應(yīng)用。


二呻畸、開始學(xué)習(xí)React

使用React之前需要在[React官網(wǎng)](https://facebook.github.io/react/downloads.html)下載這些庫移盆,也可以將其下載到本地去使用。

-react.js

-react-dom.js

-browser.min.js

上面一共列舉了三個(gè)庫: react.js 伤为、react-dom.js 和 browser.min.js 咒循,它們必須首先加載。

react.js是React的核心庫

react-dom.js是提供與DOM相關(guān)的功能

browser.min.js的作用是將JSX語法轉(zhuǎn)為JavaScript語法

這一步很消耗時(shí)間绞愚,實(shí)際上線的時(shí)候叙甸,應(yīng)該將它放到服務(wù)器完成。

注意:我們實(shí)際在做React Native開發(fā)時(shí)位衩,這些庫作為React Native核心庫已經(jīng)被初始化在node_modules目錄下裆蒸,所以不需要單獨(dú)下載。


使用React寫出我們非常熟悉的Hello World



JavaScript代碼里寫著 XML 格式的代碼稱為 JSX糖驴,下文會(huì)介紹光戈。為了把 JSX 轉(zhuǎn)成標(biāo)準(zhǔn)的 JavaScript哪痰,我們用<script? type="text/babel">標(biāo)簽遂赠,然后通過Babel轉(zhuǎn)換成在瀏覽器中真正執(zhí)行的內(nèi)容

注意:ReactDOM.render 是 React 的最基本方法久妆,用于將模板轉(zhuǎn)為 HTML 語言,并插入指定的 DOM 節(jié)點(diǎn)跷睦。

SX 和 HTML

JSX 是一個(gè)看起來很像 XML 的 JavaScript 語法擴(kuò)展筷弦。

每一個(gè)XML標(biāo)簽都會(huì)被JSX轉(zhuǎn)換工具轉(zhuǎn)換成純JavaScript代碼,使用JSX抑诸,組件的結(jié)構(gòu)和組件之間的關(guān)系看上去更加清晰烂琴。

JSX并不是React必須使用的,但React官方建議我們使用 JSX , 因?yàn)樗芏x簡潔且我們熟知的包含屬性的樹狀結(jié)構(gòu)語法蜕乡。


HTML標(biāo)簽 與 React組件 對比

React 可以渲染 HTML 標(biāo)簽 (strings) 或 React 組件 (classes)奸绷。

要渲染 HTML 標(biāo)簽,只需在 JSX 里使用小寫字母開頭的標(biāo)簽名层玲。

//var myDivElement = <div className="foo">;

React.render(myDivElement, document.body);

要渲染 React 組件号醉,只需創(chuàng)建一個(gè)大寫字母開頭的本地變量。

var MyComponent = React.createClass({/*...*/});

var myElement =<MyComponent someProperty={true} />;

React.render(myElement, document.body);?

注意:

- React 的 JSX 里約定分別使用首字母大辛块、小寫來區(qū)分本地組件的類和 HTML 標(biāo)簽畔派。

- 由于 JSX 就是 JavaScript,一些標(biāo)識(shí)符像 class 和 for 不建議作為 XML 屬性名润绵。作為替代线椰, React DOM 使用 className 和 htmlFor 來做對應(yīng)的屬性。


JavaScript 表達(dá)式

屬性表達(dá)式

要使用 JavaScript 表達(dá)式作為屬性值尘盼,只需把這個(gè)表達(dá)式用一對大括號(hào) ({}) 包起來憨愉,不要用引號(hào) (“”)。

// 輸入 (JSX):

var person =<Person name={window.isLoggedIn?window.name:''} />;

// 輸出 (JS):

var person = React.createElement(

? ? ? Person,

? ? ? {name: window.isLoggedIn ? window.name : ''}

);


React中注釋

JSX 里添加注釋很容易卿捎;它們是 JS 表達(dá)式配紫。需要在一個(gè)標(biāo)簽的子節(jié)點(diǎn)內(nèi)(非最外層)用 {} 包圍要注釋的部分。

{/*標(biāo)簽子節(jié)點(diǎn)的注釋*/}

注意:

在標(biāo)簽內(nèi)要使用{/*注釋的內(nèi)容*/}

在標(biāo)簽節(jié)點(diǎn)以外注釋娇澎,和通常的注釋是一樣的笨蚁,多行用/*多行注釋的內(nèi)容*/單行用//單行注釋的內(nèi)容;

修改組件的屬性趟庄,會(huì)導(dǎo)致React不會(huì)對組件的屬性類型(propTypes)進(jìn)行的檢查括细。從而引發(fā)一些預(yù)料之外的問題。

兩種寫法都能實(shí)現(xiàn)

不推薦的:

var component = <Component />;

component.props.foo = x;

component.props.bar = y;?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末戚啥,一起剝皮案震驚了整個(gè)濱河市奋单,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猫十,老刑警劉巖览濒,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呆盖,死亡現(xiàn)場離奇詭異,居然都是意外死亡贷笛,警方通過查閱死者的電腦和手機(jī)应又,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乏苦,“玉大人株扛,你說我怎么就攤上這事』慵觯” “怎么了洞就?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掀淘。 經(jīng)常有香客問我旬蟋,道長,這世上最難降的妖魔是什么革娄? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任倾贰,我火速辦了婚禮,結(jié)果婚禮上稠腊,老公的妹妹穿的比我還像新娘躁染。我一直安慰自己,他們只是感情好架忌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布吞彤。 她就那樣靜靜地躺著,像睡著了一般叹放。 火紅的嫁衣襯著肌膚如雪饰恕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天井仰,我揣著相機(jī)與錄音埋嵌,去河邊找鬼。 笑死俱恶,一個(gè)胖子當(dāng)著我的面吹牛雹嗦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播合是,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼了罪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了聪全?” 一聲冷哼從身側(cè)響起泊藕,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎难礼,沒想到半個(gè)月后娃圆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玫锋,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年讼呢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撩鹿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吝岭,死狀恐怖三痰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窜管,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布稚机,位于F島的核電站幕帆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赖条。R本人自食惡果不足惜失乾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纬乍。 院中可真熱鬧碱茁,春花似錦、人聲如沸仿贬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茧泪。三九已至蜓氨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間队伟,已是汗流浹背穴吹。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗜侮,地道東北人港令。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像锈颗,于是被迫代替她去往敵國和親顷霹。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • React Native是基于React的宜猜,在開發(fā)React Native過程中少不了的需要用到React方面的知...
    亓凡閱讀 1,472評論 1 4
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南泼返,這只是我在學(xué)習(xí)過程中的一些閱讀筆記,個(gè)人覺得該教程講解深入淺出姨拥,比目前大...
    leonaxiong閱讀 2,834評論 1 18
  • 數(shù)月前绅喉,F(xiàn)acebook 對外宣布了正在開發(fā)的 React Native 框架渠鸽,這個(gè)框架允許你使用 JavaScr...
    木易林1閱讀 1,185評論 0 1
  • 3.愛麗絲琴行 佳楠大學(xué)畢業(yè)后就直接到這家新開的琴行工作,也算是幫自己積攢一些人脈和經(jīng)驗(yàn)柴罐。 畢竟當(dāng)年天天拉著阿森上...
    王小帥Sep閱讀 380評論 1 2
  • 一個(gè)內(nèi)向沉靜的人徽缚,也許更需要一些反向的彌補(bǔ)。所以革屠,我不喜歡輕柔舒緩的歌曲凿试,而是更愛激烈震撼的搖滾樂。 在我看來似芝,無...
    命自我立閱讀 270評論 8 13