React Native

參考:

React 入門實(shí)例教程

React Native 從入門到原理

摘要:

1.JavaScript 代碼里面出現(xiàn)了 HTML 的語(yǔ)法,React 這種語(yǔ)法被稱為 JSX,它是一種 JavaScript 語(yǔ)法拓展。JSX 允許我們寫 HTML 標(biāo)簽或 React 標(biāo)簽,它們終將被轉(zhuǎn)換成原生的 JavaScript 并創(chuàng)建 DOM。

2.在 React 框架中,除了可以用 JavaScript 寫 HTML 以外,我們甚至可以寫 CSS

(也就是說,三件套要統(tǒng)一了?)

3.前端界總是喜歡創(chuàng)造新的概念,仿佛誰(shuí)說的名詞更晦澀,誰(shuí)的水平就越高。如果你和當(dāng)時(shí)的我一樣,聽到 React 這個(gè)概念一臉懵逼的話,只要記住以下定義即可:
React 是一套可以用簡(jiǎn)潔的語(yǔ)法高效繪制 DOM 的框架

4.React 用 JavaScript 構(gòu)造頁(yè)面

  1. React 獨(dú)創(chuàng)了 Virtual DOM 機(jī)制。Virtual DOM 是一個(gè)存在于內(nèi)存中的 JavaScript 對(duì)象,它與 DOM 是一一對(duì)應(yīng)的關(guān)系,也就是說只要有 Virtual DOM,我們就能高效渲染出 DOM。當(dāng)界面發(fā)生變化時(shí),得益于高效的 DOM Diff 算法,我們能夠知道 Virtual DOM 的變化,從而高效的改動(dòng) DOM,避免了重新繪制 DOM。

6.當(dāng)然,React 并不是前端開發(fā)的全部。從之前的描述也能看出,它專注于 UI 部分,對(duì)應(yīng)到 MVC 結(jié)構(gòu)中就是 View 層。要想實(shí)現(xiàn)完整的 MVC 架構(gòu),還需要 Model 和 Controller 的結(jié)構(gòu)。在前端開發(fā)時(shí),我們可以采用 Flux 和 Redux 架構(gòu),它們并非框架(Library),而是和 MVC 一樣都是一種架構(gòu)設(shè)計(jì)(Architecture)。

(也就是說React也不是很強(qiáng)大,只是Html的強(qiáng)化版?)

  1. JSON 文件傳遞信息的不足之處:只能傳遞配置信息,無法表達(dá)邏輯。從本質(zhì)上講,這是因?yàn)?JSON 畢竟只是純文本,它缺乏像編程語(yǔ)言那樣的運(yùn)行能力。

(類似后臺(tái)通過接口,控制iOS前端的顯示和某些執(zhí)行)

8.React Native才是試圖統(tǒng)一三件套,React不是。不過也是React 在前端取得突破性成功以后,促使其統(tǒng)一,這么說來,其功勞還是挺大的

9.React Native一個(gè)基于 JavaScript,具備動(dòng)態(tài)配置能力,面向前端開發(fā)者的移動(dòng)端開發(fā)框架。

10.React Native 希望前端開發(fā)者學(xué)習(xí)完 React 后,能夠用同樣的語(yǔ)法、工具等,分別開發(fā)安卓和 iOS 平臺(tái)的應(yīng)用并且不用一行原生代碼。

(Native code? 也就是說,React Native不僅要一統(tǒng)三件套,還要一統(tǒng)江湖?)


宏偉的目標(biāo)什么的說完,還是看看現(xiàn)實(shí)吧

摘要二

1.首先要明白的一點(diǎn)是,即使使用了 React Native,我們依然需要 UIKit 等框架,調(diào)用的是 Objective-C 代碼??傊琂avaScript 只是輔助,它只是提供了配置信息和邏輯的處理結(jié)果。React Native 與 Hybrid 完全沒有關(guān)系,它只不過是以 JavaScript 的形式告訴 Objective-C 該執(zhí)行什么代碼。
其次,React Native 能夠運(yùn)行起來,全靠 Objective-C 和 JavaScript 的交互。

(有點(diǎn)像oc與c的關(guān)系)

2.JavaScript 是一種單線程的語(yǔ)言,它不具備自運(yùn)行的能力,因此總是被動(dòng)調(diào)用。很多介紹 React Native 的文章都會(huì)提到 “JavaScript 線程” 的概念,實(shí)際上,它表示的是 Objective-C 創(chuàng)建了一個(gè)單獨(dú)的線程,這個(gè)線程只用于執(zhí)行 JavaScript 代碼,而且 JavaScript 代碼只會(huì)在這個(gè)線程中執(zhí)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • React Native 是最近非常火的一個(gè)話題,介紹如何利用 React Native 進(jìn)行開發(fā)的文章和書籍多如...
    零度_不結(jié)冰閱讀 782評(píng)論 0 1
  • React 我想動(dòng)態(tài)修改一個(gè)按鈕的文字,需要這樣寫: 可以看到,在 HTML 和 JavaScript 代碼中,i...
    攻克乃還_閱讀 752評(píng)論 1 1
  • 再見了,晚霞 請(qǐng)褪下夕陽(yáng)贈(zèng)我的紗衣 如今我將要 踏上去夜里的旅行 當(dāng)影子在腳下蔓延 風(fēng)便停歇忘卻言語(yǔ) 連同枝葉悄無...
    食腐鳥閱讀 542評(píng)論 0 0

友情鏈接更多精彩內(nèi)容