前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Context的用法

Context的用法

作者头像
世间万物皆对象
发布2024-03-20 19:45:57
860
发布2024-03-20 19:45:57
举报
文章被收录于专栏:start

概念

一种组件间通信方式,常用于【祖组件】与【后代组件】间通信 应用开发过程中,一般不会使用context,一般都用它封装react插件

示例

代码语言:javascript
复制
//1 创建Context容器对象:
cosnt XxxContext = React.createContext();
// 2 渲染子组件时,外面包裹XxxContext.provider,通过value属性给后代组件传递数据:
<xxxComponent.Provider value={数据}>
  子组件
</xxxComponent.Provider>
// 3 后代组件读取数据
// 写法一 
// 特点:简便、主要用在类组件
static contextType = xxxContext  //声明接收context
this.context //读取context中的value数据
// 写法二
// 特点:不需要this、可以接收多个context、主要用在函数组件
<xxxContext.Consumer>
  {
    value=>( //value就是context中的value数据
      要显示的内容
    )
  }
</xxxContext.Consumer>

实际应用

代码语言:javascript
复制
import React, { Component } from 'react';

// 创建Context对象
const MyContext = React.createContext()
const { Provider, Consumer } = MyContext;

class A extends Component {

  state = {
    name: 'tom',
    age:15
  }

  render() {
    const {name,age}= this.state
    return (
      <div>
        <h2>组件A</h2>
        <Provider value={{name,age}}>
          <B/>
        </Provider>
        
        <hr />
      </div>
    );
  }
}



class B extends Component {
  render() {
    //  console.log(this)
    return (
      <div>
         <hr />
        <h2>组件B</h2>
        <C/>
       
      </div>
    );
  }
}
// class C extends Component {
// // 声明接收
// static contextType = MyContext
//   render() {
//     const { name, age } = this.context;
//     return (
//       <div>
//          <hr />
//         <h2>组件C</h2>
//         <p>{name}-------{age}</p>
       
//       </div>
//     );
//   }
// }
function C (){
    return (
      <div>
         <hr />
        <h2>组件C</h2>
        <p>
          <Consumer>
            {(value)=>(`${value.name}--------${value.age}`)}
          </Consumer>
        </p>     
      </div>
    )  
}
export default A;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念
  • 示例
  • 实际应用
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档