react初探-context

本文深入探讨React中的Context API,解释其设计目的与应用场景,通过实例展示如何在组件间共享全局数据,对比Vue中的provide/inject,适合有Vue背景的学习者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 最近公司上开始用react了,以前我的技术栈都是vue相关的,所以得赶紧学起来了,记录一下学习react中碰到的问题。
  • 在项目上使用到了Context进行组件的数据传递,感觉有点意思,特此记录一下使用方法

概念及应用

context设计目的是为了共享那些对于一个组件树而言是“全局”的数据。比如你在父组件创建一个数据,则在其后代所有的组件中都可以访问的到。

用法

  • 知道基本的概念后就好理解了
    contex.js
import React from "react";
export const MyContext = React.createContext();

parent.js

import React from "react";
import {MyContext} from "./Context";

class Parent extend React {
    render() {
        return (
        // Context返回一个Provider react组件
        // value为需要传递的数据
        <MyContext.Provider value={id: 123}>
            {this.props.children}
        </MyContext.Provider>
        );
    }
}

child.js

import React from "react";
import {MyContext} from "./Context";

class Parent extend React {
    static contextType  = MyContext // 将Conte赋予为calss的静态属性contextType
    render() {
        return (
            <div>id:{this.context.id}</div>
        );
    }
}

总结

对于有使用过vue的人来说,context就相当于的vue里面的provide/inject。所以适用的场景基本都差不多,即在隔代传值中非常适合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值