摘要:import { ajax } from 'rxjs/ajax' import { map } from 'rxjs' ajax({ url: 'https://httpbin.org/delay/2', method: 'POST', headers: { 'Content-Type': 'app
阅读全文
摘要:将数据看作是商品, 生产数据的是生产者, 使用数据的是消费者. 生产者有很多, Function / Promise / Generator / Iterator / RxJS. 等等. 但这些生产者的类型却不一样, 它们被分为 Push(推模式) 和 Pull(拉模式). 拉模式的生产者更加常见,
阅读全文
摘要:获取鼠标点击坐标 1. 常规写法: document.addEventListener("click", (e) => { console.log([e.clientX, e.clientY]); }); 2. RxJS 写法(使用 map 操作符): import { fromEvent, map
阅读全文
摘要:下面要实现一个点击事件每秒触发一次的功能. 常规写法: let begin = Date.now(); document.addEventListener("click", () => { if (Date.now() - begin >= 1000) { console.log("一秒只会触发一次
阅读全文
摘要:我理解的"事件", 是一个会"重复发生的动作", 并由此产生的各种后续行为. 点击鼠标是一个事件, 点击后的各种动作和状态, 就是这个事件的"产物". Vue 中监听一个 state 的变化, 这个 state 变化时就是一个"事件", 后续的逻辑是其"产物". 回调函数也是一个事件, 内部在进行到
阅读全文
摘要:下面是一个计数器的常规写法, 可以看到, count 在函数体之外, 这个 count 就是一个状态, 它受到 click 监听函数的控制, 相当于是分开的两部分, 这种看起来没啥大毛病, 但并不优雅. 如果状态变多了, 或者它们受多个来源控制, 那状态就有可能乱掉, 容易引发混乱. let cou
阅读全文
摘要:我一直觉得, 用最少的代码实现功能是非常酷的. 如果能把少写代码与逻辑清晰结合起来, 那就是再酷不过了. 因此想记住各种常用库的方法, 尽量使用起来, 减少代码量. 这也是我学他们的主要原因. 事件监听的惯常做法是这样的: document.addEventListener("click", ()
阅读全文