react中context的使用(es6)

context的作用

context 通過組件數(shù)提供了一個傳遞數(shù)據(jù)的方法,從而避免了在每一個層級手動的傳遞 props 屬性。

在一個典型的 React 應(yīng)用中,數(shù)據(jù)是通過 props 屬性由上向下(由父及子)的進(jìn)行傳遞的,但這對于某些類型的屬性而言是極其繁瑣的(例如:地區(qū)偏好,UI主題),這是應(yīng)用程序中許多組件都所需要的。 Context 提供了一種在組件之間共享此類值的方式,而不必通過組件樹的每個層級顯式地傳遞 props 。

在react中實(shí)現(xiàn)context的使用

//使用context中值的組件
import React from 'react';
import PropTypes from 'prop-types';
class Button extends React.Component {
  render() {
    return (
      // context中的值具體的使用
      <button style={{background: this.context.color}}>
        {this.props.children}
      </button>
    );
  }
}

Button.contextTypes = {
  color: PropTypes.string
};

// 中間的組件
import React from 'react';
class Message extends React.Component {
  render() {
    return (
      <div>
        {this.props.text} <Button>Delete</Button>
      </div>
    );
  }
}

// 頂級組件,在配置context的值
import React from 'react';
import PropTypes from 'prop-types';
class MessageList extends React.Component {
  getChildContext() {
  // 設(shè)置context中color的具體值
    return {color: "purple"};
  }

  render() {
    const children = this.props.messages.map((message) =>
      <Message text={message.text} />
    );
    return <div>{children}</div>;
  }
}

MessageList.childContextTypes = {
  // 指定context中存在color,對應(yīng)的值為字符串類型
  color: PropTypes.string
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 前言 Context被翻譯為上下文,在編程領(lǐng)域,這是一個經(jīng)常會接觸到的概念,React中也有。 在React的官方...
    張國鈺閱讀 54,741評論 17 113
  • 深入JSX date:20170412筆記原文其實(shí)JSX是React.createElement(componen...
    gaoer1938閱讀 8,176評論 2 35
  • 以下內(nèi)容是我在學(xué)習(xí)和研究React時,對React的特性、重點(diǎn)和注意事項(xiàng)的提取、精練和總結(jié),可以做為React特性...
    科研者閱讀 8,398評論 2 21
  • 3. JSX JSX是對JavaScript語言的一個擴(kuò)展語法, 用于生產(chǎn)React“元素”,建議在描述UI的時候...
    pixels閱讀 2,972評論 0 24
  • 語言真是個好東西 每次閱讀每次感動 我喜歡看你們嘮嗑 或許抱怨生活艱辛 或許狂曬每日喜樂 因?yàn)樯钍莻€過程 沒有經(jīng)...
    毛girl閱讀 490評論 0 1

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