国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

React.memo

Meils / 1210人閱讀

摘要:介紹之前,先了解一下和。不同是沒有實現,而通過和的淺比較實現了。如果組件的和相同時,的內容也一致,那么就可以使用了這樣可以提高組件的性能。例如當和中有復雜數據結果時,不好使用。示例這種方式依然是一種對象的淺比較,有復雜對象時無法。

介紹React.memo之前,先了解一下React.ComponentReact.PureComponent

React.Component

React.Component是基于ES6 class的React組件。

React允許定義一個class或者function作為組件,那么定義一個組件類,就需要繼承React.Component.

例如:

class Welcome extends React.Component {
  render() {
    return 

Hello, {this.props.name}

; } }

注意:繼承React.Component的React組件類中,render()為必須方法,其他都為可選。

React.PureComponent

React.PureComponentReact.Component類似,都是定義一個組件類。不同是React.Component沒有實現shouldComponentUpdate(),而 React.PureComponent通過propsstate的淺比較實現了。

如果組件的propsstate相同時,render的內容也一致,那么就可以使用React.PureComponent了,這樣可以提高組件的性能。

例如:

class Welcome extends React.PureComponent {
  render() {
    return 

Hello, {this.props.name}

; } }
當props和state中有復雜數據結果時,不好使用PureComponent
React.memo

React.memo是一個高階組件,類似于React.PureComponent,不同于React.memofunction組件,React.PureComponentclass組件。

示例:

const MyComponent = React.memo(props => {
  /* render using props */
  return (

  );
});

這種方式依然是一種對象的淺比較,有復雜對象時無法render。在React.memo中可以自定義其比較方法的實現。

例如:

function MyComponent(props) {
  /* render using props */
}
function areEqual(prevProps, nextProps) {
  /*
  return true if passing nextProps to render would return
  the same result as passing prevProps to render,
  otherwise return false
  */
}
export default React.memo(MyComponent, areEqual);
該方法在V16.6.0才支持

推薦閱讀《React 手稿》

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/99065.html

相關文章

  • 使用React.memo()來優化函數組件的性能

    摘要:函數組件上面我們探討了如何使用和的方法優化類組件的性能。它的作用和類似,是用來控制函數組件的重新渲染的。其實就是函數組件的。 原文鏈接: Improving Performance in React Functional Component using React.memo 原文作者: Chidume Nnamdi 譯者: 進擊的大蔥 推薦理由: 本文講述了開發React應用時如...

    BetaRabbit 評論0 收藏0
  • React16時代,該用什么姿勢寫 React ?

    摘要:的返回值將作為的參數,如果返回,則不更新,不能返回或以外的值,否則會警告。在更新之前調用,此時已更新返回值作為的第個參數一般用于獲取之前的數據語法是從的返回值,默認是的使用場景一般是獲取組建更新之前的滾動條位置。 React16 后的各功能點是多個版本陸陸續續迭代增加的,本篇文章的講解是建立在 16.6.0 版本上本篇文章主旨在介紹 React16 之后版本中新增或修改的地方,所以對于...

    Reducto 評論0 收藏0
  • React源碼解析之React.createRef()/forwardRef()

    摘要:一作用獲取目標的實例使用源碼可修改的不可變的對象沒見過這種寫法初始化對象,屬性初始值為解析源碼比較簡單,就是返回了帶有屬性的二作用從父組件中獲取子組件是的實例使用是沒有實例的,因為它是,所以沒有,所以不能通過來拿到實例將的傳給子組件,并綁定 showImg(https://segmentfault.com/img/remote/1460000019877636); 一、React.cr...

    aisuhua 評論0 收藏0
  • React 源碼漂流(一)之 起航

    摘要:在前端開發過程中,源碼解讀是必不可少的一個環節,我們直接進入主題,注意當前版本號。注意包文件僅僅是的必要的功能性的定義,它必須要結合一起使用下是,原生環境下是。 在前端開發過程中,源碼解讀是必不可少的一個環節,我們直接進入主題,注意當前 React 版本號 16.8.6。 注意:react 包文件僅僅是 React components 的必要的、功能性的定義,它必須要結合 React...

    Mr_zhang 評論0 收藏0
  • React 新特性講解及實例(一)

    摘要:接收一個屬性,這個組件會讓后代組件統一提供這個變量值。因此對于同一個對象而言,一定是后代元素。解決方法就是把內聯函數提取出來,如下講了這么多,我們還沒有講到其實我們已經講完了的工作原理了。 本節主要講解以下幾個新的特性: Context ContextType lazy Suspense 錯誤邊界(Error boundaries) memo 想閱讀更多優質文章請猛戳GitHub博...

    Betta 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<