91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React構建組件的方式及區別是什么

發布時間:2022-08-08 11:18:14 來源:億速云 閱讀:120 作者:iii 欄目:開發技術

本篇內容主要講解“React構建組件的方式及區別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“React構建組件的方式及區別是什么”吧!

    一、組件是什么

    組件就是把圖形、非圖形的各種邏輯均抽象為一個統一的概念(組件)來實現開發的模式

    React中,一個類、一個函數都可以視為一個組件

    組件所存在的優勢:

    • 降低整個系統的耦合度,在保持接口不變的情況下,我們可以替換不同的組件快速完成需求,例如輸入框,可以替換為日歷、時間、范圍等組件作具體的實現

    • 調試方便,由于整個系統是通過組件組合起來的,在出現問題的時候,可以用排除法直接移除組件,或者根據報錯的組件快速定位問題,之所以能夠快速定位,是因為每個組件之間低耦合,職責單一,所以邏輯會比分析整個系統要簡單

    • 提高可維護性,由于每個組件的職責單一,并且組件在系統中是被復用的,所以對代碼進行優化可獲得系統的整體升級

    二、如何構建

    React目前來講,組件的創建主要分成了三種方式:

    • 函數式創建

    • 通過 React.createClass 方法創建

    • 繼承 React.Component 創建

    函數式創建

    React Hooks出來之前,函數式組件可以視為無狀態組件,只負責根據傳入的props來展示視圖,不涉及對state狀態的操作

    大多數組件可以寫為無狀態組件,通過簡單組合構建其他組件

    React中,通過函數簡單創建組件的示例如下:

    function HelloComponent(props, /* context */) {
      return <div>Hello {props.name}</div>
    }

    通過 React.createClass 方法創建

    React.createClass是react剛開始推薦的創建組件的方式,目前這種創建方式已經不怎么用了

    像上述通過函數式創建的組件的方式,最終會通過babel轉化成React.createClass這種形式,

    轉化成如下:

    function HelloComponent(props) /* context */{
      return React.createElement(
        "div",
        null,
        "Hello ",
        props.name
      );
    }

    由于上述的編寫方式過于冗雜,目前基本上不使用上

    繼承 React.Component 創建

    同樣在react hooks出來之前,有狀態的組件只能通過繼承React.Component這種形式進行創建

    有狀態的組件也就是組件內部存在維護的數據,在類創建的方式中通過this.state進行訪問

    當調用this.setState修改組件的狀態時,組價會再次會調用render()方法進行重新渲染

    通過繼承React.Component創建一個時鐘示例如下:

    class Timer extends React.Component {
      constructor(props) {
        super(props);
        this.state = { seconds: 0 };
      }
    
      tick() {
        this.setState(state => ({
          seconds: state.seconds + 1
        }));
      }
    
      componentDidMount() {
        this.interval = setInterval(() => this.tick(), 1000);
      }
    
      componentWillUnmount() {
        clearInterval(this.interval);
      }
    
      render() {
        return (
          <div>
            Seconds: {this.state.seconds}
          </div>
        );
      }
    }

    三、區別

    由于React.createClass創建的方式過于冗雜,并不建議使用

    而像函數式創建和類組件創建的區別主要在于需要創建的組件是否需要為有狀態組件:

    • 對于一些無狀態的組件創建,建議使用函數式創建的方式

    • 由于react hooks的出現,函數式組件創建的組件通過使用hooks方法也能使之成為有狀態組件,再加上目前推崇函數式編程,所以這里建議都使用函數式的方式來創建組件

    在考慮組件的選擇原則上,能用無狀態組件則用無狀態組件

    到此,相信大家對“React構建組件的方式及區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    滁州市| 梅州市| 章丘市| 遵化市| 大名县| 九寨沟县| 南岸区| 蛟河市| 历史| 山东省| 洪雅县| 四子王旗| 贺州市| 石楼县| 开封县| 榕江县| 琼中| 北辰区| 浦东新区| 屏南县| 黄石市| 筠连县| 延长县| 合作市| 宁城县| 隆林| 林芝县| 遵义县| 忻城县| 龙海市| 正镶白旗| 日喀则市| 仪陇县| 临西县| 勐海县| 南康市| 东安县| 肥乡县| 余干县| 齐河县| 广宗县|