React的context传值方法介绍

简介: 1.在src在创建一个context.js文件

一.函数组件context传值方法

1.在src在创建一个context.js文件

fcacbc94c70245dc810edc4f7816c58c.png

2.在context.js文件写如下代码

import React from 'react'
const MyContent = React.createContext()
export default MyContent

3.父组件

import React from 'react'
import MyContent from '../context'
import Head from "./Head"
export default function index() {
  return (
    <div>
      <MyContent.Provider value="张三">//要传递的值
        <Head />
      </MyContent.Provider>
    </div>
  )
}

4.子组件

import React,{ useContext } from 'react'
import MyContent from '../context'
export default function Head() {
    const name = useContext(MyContent)//使用usecontext接收
    return (
        <div>
            {name}
        </div>
    )
}

二.类组件context传值方法

1.在src在创建一个context.js文件

fcacbc94c70245dc810edc4f7816c58c.png

2.在context.js文件写如下代码

import React from 'react'
const MyContent = React.createContext()
export default MyContent

3.父组件

import React, { Component } from 'react'
import Head from './Head'
import MyContent from '../context'
export default class index extends Component {
  render() {
    return (
      <div>
        <MyContent.Provider value="张三">
          <Head></Head>
        </MyContent.Provider>
      </div>
    )
  }
}

4.子组件

import React, { Component } from 'react'
import MyContent from '../context'
export default class Head extends Component {
    static contextType = MyContent
    render() {
        //导入创建的context 并使用静态类方法contextType接收
        console.log(this.context);//张三        
        return (
            <div>
            </div>
        )
    }
}

三.Consumer 函数组件,类组件都可以

类组件

1.前两步跟上面一样,创建一个context.js文件,并写下上面的代码

2.父组件

import React, { Component } from 'react'
import Head from './Head'
import MyContent from '../context'
export default class index extends Component {
  render() {
    return (
      <div>
        <MyContent.Provider value="张三">
          <Head></Head>
        </MyContent.Provider>
      </div>
    )
  }
}

3.子组件

import React, { Component } from 'react'
import MyContent from '../context'
export default class Head extends Component {
    render() {
        return (
            <div>
                <MyContent.Consumer>
                    {name => { return <p>函数组件中的name: {name}</p> }}
                </MyContent.Consumer>
            </div>
        )
    }
}

函数组件

1.前两步跟上面一样,创建一个context.js文件,并写下上面的代码

2.父组件

import React from 'react'
import MyContent from '../context'
import Head from "./Head"
export default function index() {
  return (
    <div>
      <MyContent.Provider value="张三">
        <Head />
      </MyContent.Provider>
    </div>
  )
}

3.子组件

import React,{ useContext } from 'react'
import MyContent from '../context'
export default function Head() {
    return (
        <div>
            <MyContent.Consumer>
                {name => { return <p>函数组件中的name: {name}</p> }}
            </MyContent.Consumer>
        </div>
    )
}


相关文章
|
6天前
|
前端开发 API
react怎么实现父子组件传值?
react怎么实现父子组件传值?
10 1
|
6天前
|
存储 前端开发 JavaScript
【第34期】一文学会React组件传值
【第34期】一文学会React组件传值
35 0
|
6天前
|
前端开发 API
React 之 Context 的变迁与背后实现
React 之 Context 的变迁与背后实现
30 0
|
4天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
7 0
|
6天前
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
|
6天前
|
前端开发 JavaScript 开发者
vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件(二)
vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件
23 0
|
6天前
|
前端开发 JavaScript API
React的Context API:全局状态管理的利器
【4月更文挑战第25天】React的Context API解决了深层组件间状态共享的难题,提供全局状态管理方案。通过`Provider`和`Consumer`组件,或结合`useContext` Hook,实现状态在组件树中的传递。最佳实践包括避免过度使用,分离逻辑,以及在必要时与Redux或MobX结合。Context API简化了数据传递,但需谨慎使用以保持代码清晰。
|
6天前
|
存储 人工智能 开发框架
【AI大模型应用开发】【AutoGPT系列】0. AutoGPT概念及原理介绍 - Agent开发框架及ReAct方法
【AI大模型应用开发】【AutoGPT系列】0. AutoGPT概念及原理介绍 - Agent开发框架及ReAct方法
31 0
|
6天前
|
前端开发
深入理解 React 中的 Context(二)useContext、createContext
深入理解 React 中的 Context(二)useContext、createContext
|
6天前
|
前端开发 JavaScript
React生命周期方法在实际开发中的应用场景有哪些?
【4月更文挑战第6天】 React 生命周期方法应用于数据获取、订阅管理、渲染逻辑处理、用户交互响应、性能优化、资源清理、强制更新、错误处理、动画实现、代码分割、服务端渲染、路由处理、依赖注入和集成第三方库。它们帮助控制组件行为和性能,但现代开发推荐使用Hooks替代部分生命周期方法。
18 0

热门文章

最新文章