ReactNative移動跨平臺開發(fā),是一個前端框架,在學(xué)習(xí)ReactNative之前先了解一下背景

React:基礎(chǔ)框架,主要是設(shè)計一些實現(xiàn)的理念,不能用來做網(wǎng)頁的開發(fā)和移動應(yīng)用的開發(fā)
React起源于Facebook公司,起初用于Instagram網(wǎng)站開發(fā)。React是一個用于構(gòu)建用戶界面的JavaScript庫,不是一個MVC框架,提出了一種新的開發(fā)模式和理念,它強調(diào)的是“用戶界面”。
React.js:在React的基礎(chǔ)之上發(fā)展出來的,專門做網(wǎng)頁開發(fā)的
ReactNative:專門做移動應(yīng)用開發(fā)的
接下來我們了解一下React特點:
1、作為UI:React可以作為MVC中的View層進行使用,并且在已有項目中很容易使用React開發(fā)新功能
2、虛擬DOM:虛擬DOM是React最重要的特性,實現(xiàn)了優(yōu)化視圖的渲染和刷新。以前沒有ajax技術(shù)的時候,web頁面從服務(wù)器端整體渲染出html輸出到瀏覽器進行渲染,同樣的,用戶的一個改變頁面的操作也會刷新整個頁面來完成,直到有了ajax出現(xiàn),實現(xiàn)頁面局部刷新,帶來的高效和分離讓web開發(fā)者們驚嘆不已。但隨之的問題是,復(fù)雜的用戶交互及展現(xiàn)需要通過大量的DOM操作來完成,這讓頁面的性能以及開發(fā)的效率又出現(xiàn)了新的瓶頸,如何進行高性能的復(fù)雜DOM操作通常是衡量一個前端開發(fā)人員技能的重要指標。
時至今日,談到前端性能優(yōu)化,減少DOM元素、減少reflow和repaint、編碼過程中盡量減少DOM的查詢等手段是大家耳熟能詳?shù)?,而頁面任何UI變化都是通過整體刷新來完成的,而React之所以快,是因為它不直接操作DOM,而是引進虛擬DOM的實現(xiàn)來解決這個問題。
基于React進行開發(fā)時所有的DOM構(gòu)造都是通過虛擬DOM進行,每當數(shù)據(jù)變化時,React都會重新構(gòu)建一個完整的虛擬DOM樹,虛擬DOM樹是內(nèi)存數(shù)據(jù),React通過自己實現(xiàn)的DOM Diff算法將當前虛擬DOM樹和上一次的DOM樹進行對比,得到兩個DOM結(jié)構(gòu)的差異,然后僅僅將需要變化的部分進行實際的瀏覽器DOM更新。達到最小化重繪。避免不必要的DOM操作,解決了這兩個公認的前端性能瓶頸,實現(xiàn)高效DOM渲染。
3、組件化:對于React而言,開發(fā)者從功能的角度出發(fā),將UI分成不同的組件,每個組件都獨立封裝。在React中,你按照界面模塊自然劃分的方式來組織和編寫你的代碼,對于評論界面而言,整個UI是一個通過小組件構(gòu)成的大組件,每個組件只關(guān)心自己部分的邏輯,批次獨立,React組件應(yīng)具有如下特征:可組合、可重用、可維護
4、數(shù)據(jù)流:React實現(xiàn)了單向的數(shù)據(jù)流,相對于傳統(tǒng)的數(shù)據(jù)綁定,React更加靈活、便捷。
React學(xué)習(xí)準備:
1、前端基礎(chǔ)知識:html、css、JavaScript
2、JSX語法知識
3、ES6相關(guān)知識
4、React中文網(wǎng)站:http://www.css88.com/react/index.html
React 和ReactNative的關(guān)系
1、React用于Web應(yīng)用開發(fā)。ReactNative采用React方式進行移動應(yīng)用開發(fā)。
2、ReactNative采用React語法,用于進行JavaScript跨終端應(yīng)用開發(fā)。既擁有原生Native的交互體驗,又能夠保留React自由的開發(fā)效率。使用靈活的HTML和CSS布局,使用React語法構(gòu)建組件,然后同時運行在IOS和Android平臺上。