react 知識點簡單總結

1.react.js 、react-dom.js 和 Browser.js ,它們必須首先加載。其中,react.js 是 React 的核心庫,react-dom.js 是提供與 DOM 相關的功能,Browser.js 的作用是將 JSX 語法轉為 JavaScript 語法,這一步很消耗時間,實際上線的時候,應該將它放到服務器完成。

2.ReactDOM.render 是 React 的最基本方法,用于將模板轉為 HTML 語言,并插入指定的 DOM 節(jié)點。

  1. HTML 語言直接寫在 JavaScript 語言之中,不加任何引號,這就是JSX 的語法,它允許 HTML 與 JavaScript 的混寫
    JSX 的基本語法規(guī)則:遇到 HTML 標簽(以 < 開頭),就用 HTML 規(guī)則解析;遇到代碼塊(以 { 開頭),就用 JavaScript 規(guī)則解析。
    JSX 的基本語法規(guī)則:遇到 HTML 標簽(以 < 開頭),就用 HTML 規(guī)則解析;遇到代碼塊(以 { 開頭),就用 JavaScript 規(guī)則解析。

4.React 允許將代碼封裝成組件(component),然后像插入普通 HTML 標簽一樣,在網(wǎng)頁中插入這個組件。React.createClass 方法就用于生成一個組件類。
組件類的第一個字母必須大寫,否則會報錯。
組件類只能包含一個頂層標簽,否則也會報錯。
添加組件屬性,有一個地方需要注意,就是 class 屬性需要寫成 className ,for 屬性需要寫成 htmlFor ,這是因為 class 和 for 是 JavaScript 的保留字。

5.this.props 對象的屬性與組件的屬性一一對應,但是有一個例外,就是 this.props.children 屬性。它表示組件的所有子節(jié)點。
this.props.children 的值有三種可能:如果當前組件沒有子節(jié)點,它就是 undefined ;如果有一個子節(jié)點,數(shù)據(jù)類型是 object ;如果有多個子節(jié)點,數(shù)據(jù)類型就是 array 。所以,處理 this.props.children 的時候要小心。
React 提供一個工具方法 React.Children 來處理 this.props.children

6.組件的屬性可以接受任意值,字符串、對象、函數(shù)等等都可以。有時,我們需要一種機制,驗證別人使用組件時,提供的參數(shù)是否符合要求。
組件類的PropTypes屬性,就是用來驗證組件實例的屬性是否符合要求。
getDefaultProps 方法可以用來設置組件屬性的默認值。

7.組件并不是真實的 DOM 節(jié)點,而是存在于內(nèi)存之中的一種數(shù)據(jù)結構,叫做虛擬 DOM (virtual DOM)。只有當它插入文檔以后,才會變成真實的 DOM 。根據(jù) React 的設計,所有的 DOM 變動,都先在虛擬 DOM 上發(fā)生,然后再將實際發(fā)生變動的部分,反映在真實 DOM上,這種算法叫做 [DOM diff] ,它可以極大提高網(wǎng)頁的性能表現(xiàn)。
但是,有時需要從組件獲取真實 DOM 的節(jié)點,這時就要用到 ref 屬性。

8.組件免不了要與用戶互動,React 的一大創(chuàng)新,就是將組件看成是一個狀態(tài)機,一開始有一個初始狀態(tài),然后用戶互動,導致狀態(tài)變化,從而觸發(fā)重新渲染 UI。
this.state 屬性讀取。當用戶點擊組件,導致狀態(tài)變化,this.setState 方法就修改狀態(tài)值,每次修改以后,自動調(diào)用 this.render 方法,再次渲染組件。
由于 this.props 和 this.state 都用于描述組件的特性,可能會產(chǎn)生混淆。一個簡單的區(qū)分方法是,this.props 表示那些一旦定義,就不再改變的特性,而 this.state 是會隨著用戶互動而產(chǎn)生變化的特性。

9.用戶在表單填入的內(nèi)容,屬于用戶跟組件的互動,所以不能用 this.props 讀取。

10.組件的生命周期(看那篇細文)

11.組件的數(shù)據(jù)來源,通常是通過 Ajax 請求從服務器獲取,可以使用 componentDidMount 方法設置 Ajax 請求,等到請求成功,再用 this.setState 方法重新渲染 UI 。

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

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

  • 40、React 什么是React?React 是一個用于構建用戶界面的框架(采用的是MVC模式):集中處理VIE...
    萌妹撒閱讀 1,187評論 0 1
  • 1、什么是react React.js 是一個幫助你構建頁面 UI 的庫。React.js 將幫助我們將界面分成了...
    谷子多閱讀 2,648評論 1 13
  • 以下內(nèi)容是我在學習和研究React時,對React的特性、重點和注意事項的提取、精練和總結,可以做為React特性...
    科研者閱讀 8,409評論 2 21
  • 3. JSX JSX是對JavaScript語言的一個擴展語法, 用于生產(chǎn)React“元素”,建議在描述UI的時候...
    pixels閱讀 2,979評論 0 24
  • 原教程內(nèi)容詳見精益 React 學習指南,這只是我在學習過程中的一些閱讀筆記,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,944評論 1 18

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