这里仅仅记录一下自己查看了一些 scroll 插件源码的总结,没有具体代码。
- 创建 scroll 构造函数或者插件以及对应的方法如 addListener 等等
- 创建组件 A(可包含其它组件为子组件的那种),获取到子组件 DOM,以及获取子组件传入的方法。
- 调用 scroll 构造函数的方法去进行一些操作,比如组件 mount 的时候对子元素绑定 addListener 事件,unmount 的时候 removeListener。创建 scroll 实例以及调用 scroll 方法时会将获取到的子组件元素和方法传递给 scroll 构造函数。
- 外部的组件,调用 A 组件,传入对应的方法。该方法可以是任意方法,完全又外部组件自定义,主要是触发 scroll 时需要执行的方法。
- 定义传入的方法,一般是判断 scroll 滚动条快到底了,比如判断出滚动条到最底部位置小于 20 px 时,拉取下一页数据。
总之一定要先封装好所有的监听事件,事件需要执行的方法或者执行方法的判断条件交给外部组件自己去处理。