手记

【金秋打卡】第18天 从函数到函数式编程之路

课程名称:破解JavaScript高级玩法
课程章节:第7章 如果不用vue,react框架,如何操作DOM?
主讲老师:Cloud

课程内容:

今天学习的内容包括:
7-9 3行,6行,8行代码实现订阅发布中心——订阅消息分发原生处理。
7-10 综合训练——尝试实现相关问题。

课程收获:

订阅发布中心
  • 是什么: 是一种消息通知机制,也是一种发布订阅模式的的实际应用
  • 应用场景:公众号消息,短信提醒等等
  • 前端四大手写题之一
最基础的订阅发布中心
  • on:订阅
  • once:订阅,但仅仅接受─次通知
  • off:取消订阅
  • emit:派发事件,通知订阅者
原理浅析
  • window是表象,根源是 EventTarget
  • document和元素节点也是继承于EventTarget
  • XMLHttpRequest, WebSocket也继承于EventTarget
EventTarget
  • 构造函数:EventTarget() - 创建一个新的EventTarget对象实例
  • 方法
    – EventTarget.addEventListener():在EventTarget上注册特定事件类型的事件处理程序。
    – EventTarget.removeEventListener():EventTarget中删除事件侦听器。
    – EventTarget.dispatchEvent():将事件分派到此EventTarget。
3行版本存在的问题
  1. 不能多实例化啊
  2. 挂载window上太丑了
  3. 不能传递多参数啊
  4. 参数从ev.detail上获取,不合理
  5. 不能在nodejs中使用啊
6行代码版本存在的问题
  • ev.detail上获取参数
  • 不能传递多个参数
核心知识点
  • EventTarget
  • CustomEvent
  • 分组运算符
  • 高阶函数

今天 学习了 3行,6行,8行代码实现订阅发布中心。了解了底层如何实现emits消息分发,虽然我不怎么懂,但是体会了技术的魅力。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~


0人推荐
随时随地看视频
慕课网APP