首頁 > web前端 > js教程 > react的基礎元件如何使用? react的基礎元件和生命週期的介紹

react的基礎元件如何使用? react的基礎元件和生命週期的介紹

寻∝梦
發布: 2018-09-11 13:52:58
原創
1182 人瀏覽過

本篇文章主要的介紹了關於react中關於組件基礎與生命週期的詳細解釋,現在就讓我們一起來看這篇文章吧

本文主要講解React中關於組件的使用、React特有的JSX語法以及React生命週期的使用等,具體如下:

  • #React的虛擬DOM

  • ##React元件

  • React多元件巢狀

  • React的語法—JSX

  • React的生命週期

1、React的虛擬DOM

  • innerHTML: render html string 重新建立所有DOM 元素

  • #Virtual DOM: render Virtual DOM diff 必要的DOM 更新

    更詳細介紹,請查看React虛擬DOM詳解

2、React元件

  • 1、建立元件:

    • 1)沒有函數定義

    • 2)ES5原生方式:React.createClass,(this自動綁定)

    • 3)ES6形式:extends React.Component,(this來自super())

  • #2、元件:是React的一個特性

  • 3、元件對於模組化開發的重要性

  • 4.元件的return函數中傳回的HTML節點有且只有一個

  • 5、可以給外部使用的元件定義:export default class Header extends React.Component{}

  • 6、元件導入:import Header from “XXX檔”;

  • 7、網頁入口:ReactDOM.render(元件, document.getElementById(“ xxx”));

詳細程式碼如下:

const React = require('react');const ReactDOM = require('react-dom');
import ComponentHeader from "./component/header.js";
import ComponentFooter from "./component/footer.js";
import BodyIndex from "./component/bodyIndex.js";class Index extends React.Component {
    render() {        return (
            <p>
                <ComponentHeader />
                <BodyIndex />
                <ComponentFooter />
            </p> 
        )
    }
}
ReactDOM.render(
    <Index />,
    document.getElementById("wrap")
)
登入後複製

3、React多元件巢狀

    ##元件可以透過參數傳遞
  • return中只允許一個標籤容器,但是標籤容器中可以存放無數個標籤
  • 注意項目的命名和檔案的結構化
  • 程式碼如下:
const React = require(&#39;react&#39;);const ReactDOM = require(&#39;react-dom&#39;);

export default class ComponentHeader extends React.Component {
    render() {        return (
            <header>
                <h1>页面的头部</h1>
            </header>
        )
    }
}
登入後複製

4、React的語法—JSX內建表達式

##語法:{userName == “” ?
    使用者尚未登入
  • :

    使用者名稱:${userName}}

    註解的寫法:{/
  • 按鈕
  • /}

    HTML顯示Unicode轉碼
  • HTML顯示特殊字元:dangerouslySetInnerHTML ={{__html : html}} —此方式存在XSS攻擊
  • JSX讀取陣列的時候,直接數組名,可以存取到所有的成員變數
  • JSX讀取物件時,仍遵循物件.屬性的操作
  • JSX的語法在編譯上遵循規則:

  • 遇到HTML標籤(以<開頭)就用HTML規則解析;
    • 遇到程式碼區塊(以{開頭)就用JavaScript規則解析。
    • 程式碼詳情:
    const React = require(&#39;react&#39;);const ReactDOM = require(&#39;react-dom&#39;);
    
    export default class BodyIndex extends React.Component {
        render() {        var userName = "CSS3";        var bool = true;        var html = "HTML5 CSS3";        // JSX可以使用JS变量的,但是如果是一个数组,会访问到其内部的所有数组成员
            var arr = [
                <h2>HTML</h2>,
                <h3>HTML</h3>
            ];        // 解构赋值
            var obj = {
                userName,
                bool,
                html
            }    // JSX的语法在编译上遵循规则:
            // 遇到HTML标签(以<开头)就用HTML规则解析
            // 遇到代码块(以{开头)就用JavaScript规则解析
            return (
                <p>
                    <p>{obj.userName}</p>
                    <p>{arr}</p>
                    <h1>页面的主体</h1>
                    <p>{userName == "" ? `用户还没有登录` : `用户名:${userName}`}</p>
                    {/*按钮*/}
                    <p><input type="button" value={userName} disabled={bool} /></p>
                    <p>{html}</p>
                    <p dangerouslySetInnerHTML ={{__html : html}}></p>
                </p>
            )
        }
    }
    登入後複製
    5、 React的生命週期

    #生命週期共提供了10個不同的API(實例化5個、已載4個、銷毀1個)。

    1.getDefaultProps

    作用於元件類,只呼叫一次,傳回物件用於設定預設的props,對於引用值,會在實例中共用。

    2.getInitialState

    作用於元件的實例,在實例建立時呼叫一次,用於初始化每個實例的state,此時可以存取this.props。

    3.componentWillMount

    在完成首次渲染之前調用,此時仍可以修改元件的state。 (想看更多就到PHP中文網

    React參考手冊

    欄位中學習)

    #4.render

    必選的方法,創建虛擬DOM,該方法具有特殊的規則:

    5.componentDidMount

    真實的DOM被渲染出來後調用,在該方法中可透過this.getDOMNode()存取到真實的DOM元素。此時已可以使用其他類別庫來操作這個DOM。

    在服務端中,該方法不會被呼叫。

    6.componentWillReceiveProps

    元件接收到新的props時調用,並將其作為參數nextProps使用,此時可以更改元件props及state。

    7.shouldComponentUpdate

    元件是否應渲染新的props或state,回傳false表示跳過後續的生命週期方法,通常不需要使用以避免出現bug。在出現應用的瓶頸時,可透過此方法進行適當的最佳化。

    在首次渲染期間或呼叫了forceUpdate方法後,方法不會被呼叫

    8.componentWillUpdate

    接收到新的props或state後,進行渲染之前調用,此時不允許更新props或state。

    9.componentDidUpdate

    完成渲染新的props或state後調用,此時可以存取到新的DOM元素。

    10.componentWillUnmount

    元件被移除之前被調用,可以用於做一些清理工作,在componentDidMount方法中添加的所有任務都需要在該方法中撤銷,例如創建的定時器或新增的事件監聽器。

    具體圖解如下:
    react的基礎元件如何使用? react的基礎元件和生命週期的介紹

    6、 總結

    本文主要是對React組件的書寫以及使用作出簡要介紹,具體程式碼可以下載—連結:https ://pan.baidu.com/s/1qZATfYG  密碼:7kkj

    #下載完畢之後,透過指令面板定位到目前資料夾,之後執行npm install安裝所有環境,安裝完畢之後,執行webpack –watch ,項目即可運行。

    這篇文章到這就結束了(想看更多就到PHP中文網React使用手冊欄位中學習),有問題的可以在下方留言提問。

    以上是react的基礎元件如何使用? react的基礎元件和生命週期的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板