封装事件订阅来进行非父子组件的传值(React)
2024-10-18 19:49:08
const list={} // 将事件名和事件函数装进事件池里
function $on(name,func) {
if(!name || !func) return;
if(!Object.keys(list).includes(name)){
list[name]=func;
}
}
// 根据事件名称搜索事件池 找到执行
function $emit(name,...arg) {
if(!name) return;
if(Object.keys(list).includes(name)){
list[name](...arg)
}
} // 执行完并且不在需要后 清除事件
function $off(name) {
if(!name) return;
if(Object.keys(list).includes(name)){
list[name]=null;
delete list[name]
}
}
export {
$on,
$emit,
$off,
}
最新文章
- ActiveMQ笔记(4):搭建Broker集群(cluster)
- Redis 哨兵模式实现主从故障互切换
- [转载] linux 下查看机器cpu是几核的
- 原生javascript模仿win8等待进度条。
- 深入浅出ES6(十五):子类 Subclassing
- 关于extern对变量的使用
- 我们为什么要遵循W3C标准规范
- 201521123035《Java程序设计》第十三周学习总结
- 使用Mkdocs构建你的项目文档
- 配置maven项目的开发时的默认jdk版本
- SQL使用之关联更新、批量插入
- SQL语句——exists和in区别
- (转)php读取文件使用redis的pipeline导入大批量数据
- 关于const修饰指针
- .net MVC4一个登陆界面加验证
- Python - 列表解析式
- web site optimization
- js中获取事件对象的方法小结
- ";去QE化";的思考
- Intro to Python for Data Science Learning 8 - NumPy: Basic Statistics