react-组件各种通讯方式

1、props父子组件通讯

2、context多级嵌套组件通讯

3、event/emit 全局的组件之间的通讯

4、redux/mobx 全局的状态管理

Context:

创建Context会返回两个参数 (Provider,Consumer)

第一个参数是生产者 用来存储变量

第二个为消费者 使用消费者来拿到生产者的值

为什么要使用 Context? 

因为它可以在无限层级的嵌套组件中进行参数和方法的传递 而且中间层不需要数据处理

 订阅发布事件:

//观察者模式 订阅/发布
export const { Provider, Consumer } = React.createContext();
//React是一个对象 React.component是一个函数 所以他才有原型  我们利用Objcet.assign
// 来把他的原型和后面自定义方法合并到原有的原形
// 定义一个对象用来接收 事件名和后面的剩余参数 参数其实就是我们传递的方法
// 定义addEvent 这个会把原有的addEvent顶替掉 对象的属性名就是事件名 属性值就为后面传递的参数
// 定义触发方法 刚刚在对象中已经定义了一个自定义事件
// 所以现在只需要调用这个自定义事件 传入一个剩余参数
let eventList = {};
const addEventListener = (eventName, callback) => {
  eventList[eventName] = callback;
};
const emit = (eventName, ...args) => {
  eventList[eventName] && eventList[eventName](...args);
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值