美文网首页
react学习四-context

react学习四-context

作者: 梦行乌托邦 | 来源:发表于2020-08-05 10:58 被阅读0次

AppContext.js

import React from 'react';

export const Context = React.createContext();
export const Provider = Context.Provider;
export const Consumer = Context.Consumer;

Parent0.js

import React from 'react';
import Parent1 from './Parent1';

import {Provider} from './AppContext';

const store = {
    home: {},
    user: {
        name: 'lili'
    }
}

function Parent0(){
    return (
        <div>
            <Provider value={store}>
                <Parent1 />
            </Provider>
        </div>
    );
}

export default Parent0;

Parent1.js

import React, { Component } from 'react';
import Parent2 from './Parent2';

class Parent1 extends Component {
    render() { 
        console.log('Parent1', this.props);
        return ( 
            <div>
                <Parent2 />
            </div>
         );
    }
}
 
export default Parent1;

Parent2.js

import React from 'react';
import { Consumer } from './AppContext';
import Parent3 from './Parent3';

export default function Parent2(props) {
    console.log('Parent2', props);
    return (
        <div>
            <Consumer>
                {ctx => <Parent3 {...ctx} />}
            </Consumer>
        </div>
    );
}

Parent3.js

import React from 'react';

export default function Parent3(props) {
    console.log('Parent3', props);
    return (
        <div>
            Parent3
        </div>
    );
}

组件关系:
Parent0 -》 Parent1 -》 Parent2 -》 Parent3
Parent0中的store通过context的方式传递到了Parent3!

通过Consumer包围的组件(Parent3)
可以使用
提供了Provider的组件中的数据(Parent0)

不同数据用不同的Provider和Consumer

相关文章

  • react学习四-context

    AppContext.js Parent0.js Parent1.js Parent2.js Parent3.js...

  • 2018-08-08

    React 高级指南 React 新版上下文(context) context ?答:上下文(Context) 提...

  • react源码解析17.context

    react源码解析17.context 视频讲解(高效学习):进入学习[https://xiaochen1024....

  • react源码解析17.context

    react源码解析17.context 视频讲解(高效学习):进入学习[https://xiaochen1024....

  • React中不常用的功能——Context

    React中不常用的功能——Context Context React源码版本16.8 基本用法 跨层级通信 Co...

  • react源码解析17.context

    react源码解析17.context 视频课程(高效学习):进入课程[https://xiaochen1024....

  • 疑问汇总

    1. react context是怎样实现 跨组件通信的? 从Context源码实现谈React性能优化[http...

  • react context

    react context React.createContext, Provider(数据提供者), Consu...

  • React 拾遗之 Context

    React 拾遗之 Context React.js 的 context 其实像就是组件树上某颗子树的全局变量 使...

  • react-redux源码解读

    "react-redux": "^5.0.6" redux和react之间的桥梁是react的context,re...

网友评论

      本文标题:react学习四-context

      本文链接:https://www.haomeiwen.com/subject/oorbrktx.html