react的context使用方法

先看一下目录,很多博客上都是直接将父子组件全部写到同一个文件上,但是在项目中大部分需要将组件抽离成各个文件。

react的context使用方法_第1张图片

context.js

import React from 'react'

const MyContext = React.createContext()

export default MyContext

父组件:通过ContextApp.Provider设置共享数据

import React, { Component } from 'react'
import { withRouter } from 'react-router-dom'
import ContextTest from './components/contextTest'
import ContextApp from './context.js'

class PageTwo extends Component {
  constructor() {
    super()
    this.state = {
      name: 1
    }
  }
  }
  render() {
    return (
      
{ this.setState({ name: changeValue }) }}}>
) } } export default withRouter(PageTwo)

子组件:当子组件触发了该父组件下共享数据的变化就会触发相关视图的改变。通过ContextApp.Consumer关联共享数据

import React, { Component } from 'react'
import ContextApp from '../context.js'

export default class ContextTest extends Component {
  render() {
    console.log('更新了')
    return (
      
{ ({name, changeName}) => { return (
{ changeName(name + 1) }} className="">{name}
) } }
) } }

类似mobx和redux的功能实现一个局部的或者全局的数据共享并更新视图。

你可能感兴趣的:(react)