本篇文章主要的向大家介紹了關於react的基礎認識,你敢說你對react認識很多嗎,沒有的話那就來看看這篇文章吧
#1、 Facebook為何要建造React?
Facebook的工程師在做大型專案時,由於他們非常巨大的程式碼庫和龐大的組織,使得MVC很快變得非常複雜,每當需要添加一項新的功能或特性時,系統的複雜度就成級數增長,致使程式碼變得脆弱和不可預測,結果導致他們的MVC正在土崩瓦解,所以Facebook認為MVC不適合大規模應用,當系統中有很多的模型和相應的視圖時,其複雜度就會迅速擴大,非常難以理解和調試,特別是模型和視圖間可能存在的雙向資料流。
基於上面的原因,Facebook認為MVC無法滿足他們的擴展需求,為了解決上述問題需要「以某種方式組織程式碼,使其更加可預測”,於是他們提出的Flux和React來實現。
2、 什麼是React?
#
React 起源於 Facebook 的內部項目,因為該公司對市場上所有 JavaScript MVC 框架,都不滿意,就決定自己寫一套,用來架設Instagram 的網站。做出來以後,發現這套東西很好用,就在2013年5月開源了。
React 是一個用於建立使用者介面的JavaScript 函式庫。 React主要用於建立UI,許多人認為 React 是 MVC 中的 V(視圖)。 React 擁有較高的效能,程式碼邏輯非常簡單,越來越多的人開始關注和使用它。
3、 React是解決什麼問題?
We built React to solve one problem: building large applications with data that changes over time.建構那些資料會隨時間改變的大型應用4、React 特點
####################################### #######1.######聲明式設計####### −React######採用宣告範式,可以輕鬆描述應用。 ############2.######高效能###### −React######透過對######DOM######的模擬,最大限度地減少與######DOM######的交互作用。 ######3.靈活 −React可以與已知的函式庫或框架很好地配合。
4.JSX − JSX#是# JavaScript語法的擴充。 React開發不一定使用# JSX,但我們建議使用它。
5.元件 − 透過 React建構元件,使得程式碼更容易得到重複使用,能夠很好的應用在大專案的開發中。
6.單向回應的資料流# − React 實現了單向回應的資料流,從而減少了重複程式碼,這也是為什麼它比傳統資料綁定更簡單。
5、React主要的原理
傳統的web應用,操作DOM一般是直接更新操作的,但是我們知道DOM更新通常是比較昂貴的。而React為了盡可能減少對DOM的操作,提供了一種不同的而又強大的方式來更新DOM,取代直接的DOM操作。就是VirtualDOM,一個輕量級的虛擬的DOM,就是React抽像出來的一個對象,描述dom應該是什麼樣子的,應該如何呈現。透過這個Virtual DOM去更新真實的DOM,由這個Virtual DOM管理真實DOM的更新。 (想看更多就到PHP中文網React參考手冊欄位中學習)
為什麼透過這多一層的Virtual DOM操作就能更快呢?這是因為React有個diff演算法,更新VirtualDOM並不保證馬上影響真實的DOM,React會等到事件循環結束,然後利用這個diff演算法,透過目前新的dom表述與之前的作比較,計算出最小的步驟更新真實的DOM。
最明顯的一點好處就是React所謂的 dom diff ,能夠實現delta層級的dom更新。當有資料變動導致DOM變動時,React不是全域刷新,而是透過它內部的dom diff 演算法計算出不同點,然後以最小粒度進行更新。這也是React號稱性能好的原因。
6、Components 元件
在DOM樹上的節點稱為元素,在這裡則不同,Virtual DOM上稱為commponent。 Virtual DOM的節點就是一個完整抽象的元件,它是由commponents組成。 component的使用在 React 裡極為重要, 因為 components 的存在讓計算 DOM diff 更有效率。
7、套用情況
#國外應用的較多,facebook、Yahoo、Reddit等。在github可以看到一個清單Sites-Using-React:https://github.com/facebook/react/wiki/Sites-Using-React國內的話,查了查,貌似比較少,目前知道的有一個杭州大搜車。大多數技術要在國內應用起來一般是較慢的。
8、比較分析
#、其他一些js框架相比,例如Backbone、Angular等,React怎樣?
#1、React不是一個MVC框架,它是建構易於可重複呼叫的web元件,專注於UI, 也就是view圖層
2、其次React是單向的從資料到視圖的渲染,非雙向資料綁定
3、不直接操作DOM對象,而是透過虛擬DOM透過diff演算法以最小的步驟作用到真實的DOM。
4、不便於直接操作DOM,大多數時間只是對virtual DOM 進行程式設計
##9、和React Native的關係
#由於React的設計思想極為獨特,屬於革命性創新,性能出眾,程式碼邏輯卻非常簡單。所以,越來越多的人開始關注和使用,認為它可能是將來Web 開發的主流工具。
這個專案本身也越滾越大,從最早的UI引擎變成了一整套前後端通吃的 Web App 解決方案。衍生的 React Native 項目,目標更是宏偉,希望用寫Web App 的方式去寫 Native App。如果能夠實現,整個網路產業都會被顛覆,因為同一組人只需要寫一次 UI ,就能同時運行在伺服器、瀏覽器和手機。
這篇文章到這就結束了(想看更多就到PHP中文網React使用手冊欄位中學習),有問題的可以在下方留言提問。
以上是什麼是react? react主要是做什麼的? (問答篇)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在react中,canvas用于绘制各种图表、动画等;可以利用“react-konva”插件使用canvas,该插件是一个canvas第三方库,用于使用React操作canvas绘制复杂的画布图形,并提供了元素的事件机制和拖放操作的支持。

React不是双向数据流,而是单向数据流。单向数据流是指数据在某个节点被改动后,只会影响一个方向上的其他节点;React中的表现就是数据主要通过props从父节点传递到子节点,若父级的某个props改变了,React会重渲染所有子节点。

在react中,antd是基于Ant Design的React UI组件库,主要用于研发企业级中后台产品;dva是一个基于redux和“redux-saga”的数据流方案,内置了“react-router”和fetch,可理解为应用框架。

因为在react中需要利用到webpack,而webpack依赖nodejs;webpack是一个模块打包机,在执行打包压缩的时候是依赖nodejs的,没有nodejs就不能使用webpack,所以react需要使用nodejs。

react是组件化开发;组件化是React的核心思想,可以开发出一个个独立可复用的小组件来构造应用,任何的应用都会被抽象成一颗组件树,组件化开发也就是将一个页面拆分成一个个小的功能模块,每个功能完成自己这部分独立功能。

react和reactdom的区别是:ReactDom只做和浏览器或DOM相关的操作,例如“ReactDOM.findDOMNode()”操作;而react负责除浏览器和DOM以外的相关操作,ReactDom是React的一部分。

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

react中没有双向绑定;react的设计思想就是单向数据流,没有双向绑定的概念;react是view层,单项数据流只能由父组件通过props将数据传递给子组件,满足了view层渲染的要求并且更易测试与控制,所以在react中没有双向绑定。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器