日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识React

發(fā)布時間:2024/1/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识React 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

初識React

依稀記得2015那年參加線下活動,第一次聽說React這個詞語,當時的主講人是郭達峰,他播放了一個關于ember、angular及react的性能對比視頻: React.js Conf 2015。那時我主要從事angularjs開發(fā),深知angular在頁面復雜時性能問題的疼,看到這個視頻的性能對比后瞬間被React折服。現(xiàn)在我們一起再回顧下React~

視圖庫

React不同于AngularJS、Backbone等MVC框架,它是Facebook推出的一個用來構建用戶界面的Javascript庫,只專注于view層(即MVC中的V),是一個用于構建前端可復用UI組件的庫,同時,當數據發(fā)生變化時,React會及時有效地更新和渲染相應的組件。對于越來越復雜的前端界面,尤其是對于數據不斷變化的web應用,React實現(xiàn)了將變化的數據高效無誤的反映在頁面上。

視圖狀態(tài)機

在傳統(tǒng)Web應用中,當數據改變時需要同步DOM節(jié)點的改變,React
把界面看做一個狀態(tài)機:

UI = f(states)

當界面狀態(tài)發(fā)生變化時,React會根據給定的狀態(tài)及時有效地更新和渲染相應的組件,相同的狀態(tài)其渲染表現(xiàn)一致。

JSX

在傳統(tǒng)的Web應用中采用模板或HTML指令構建用戶界面,但React采用了JSX(一種擴展了ECMAScript的類似XML語法)聲明式的寫法,它優(yōu)勢超過模板:

  • JavaScript是一種靈活的、擴展性高的編程語言

  • 統(tǒng)一頁面標記語言和視圖邏輯,使視圖更易于擴展和維護

  • 沒有字符串的拼接,將視圖內容融入JavaScript中,減少XSS漏洞的存在

高效更新

當應用狀態(tài)發(fā)生改變時,React能高效地更新和渲染組件及界面:

  • 虛擬DOM:通過Javascript在內存中用輕量級的描述對象表示真實DOM節(jié)點的結構和樣式

  • 差量算法:高效快速地生成一個最小集的Diff樹

  • 批量更新:將狀態(tài)的多次更新有效地合并為一次更新操作

React利用虛擬DOM來描述一個真實DOM,當應用狀態(tài)發(fā)生改變時,通過高效的差量算法生產一個最小集的Diff樹,同時合并多次更新操作為一次,減少了對實際DOM的直接操作,從而大大的提升了性能。

事件代理

React采用了事件代理機制,它能夠保持事件冒泡的一致性,跨瀏覽器的執(zhí)行,甚至可以在IE8中使用HTML5的事件。React實現(xiàn)了一個“合成事件”層,這個事件層消除了IE與W3C標準實現(xiàn)之間的兼容問題,通過JSX這種方式綁定的事件都是綁定到“合成事件”。“合成事件”會以事件委托的方式綁定到組件最上層,并且在組件卸載的時候自動銷毀綁定的事件。

Flux單向流

Flux是Facebook推出的一種應用架構,他推崇一種單向的數據流動:

NameDescription
Views視圖層,React組件
Actions行為動作層,視圖層觸發(fā)的動作,例如click event
Dispatcher分發(fā)中心,注冊/接受動作,調用數據流向中的回調函數
Stores數據層,管理應用狀態(tài),廣播通知Views狀態(tài)發(fā)生改變

我們一起看下MV*和Flux應用架構下的數據流向關系圖:

MV*

Flux

從上面圖中我們可以看到,Flux單向數據流使應用狀態(tài)變得可預測和可追蹤,能夠很方便地達到以下目標:

  • 易測試性、可重現(xiàn)性

  • 基于時間旅行的診斷調試

  • 撤銷與重放功能

isomorphic/universal

React能在服務端中運行,以達到SEO優(yōu)化、體驗優(yōu)化和性能優(yōu)化等目的;同時我們只需學習React一次,就能夠在任何地方編寫,你可以使用它編寫Web、手機、VR等應用。

總結

以上是生活随笔為你收集整理的初识React的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。