這里僅僅記錄一下自己查看了一些 scroll 插件源碼的總結,沒有具體代碼。
- 創(chuàng)建 scroll 構造函數(shù)或者插件以及對應的方法如 addListener 等等
- 創(chuàng)建組件 A(可包含其它組件為子組件的那種),獲取到子組件 DOM,以及獲取子組件傳入的方法。
- 調(diào)用 scroll 構造函數(shù)的方法去進行一些操作,比如組件 mount 的時候?qū)ψ釉亟壎?addListener 事件,unmount 的時候 removeListener。創(chuàng)建 scroll 實例以及調(diào)用 scroll 方法時會將獲取到的子組件元素和方法傳遞給 scroll 構造函數(shù)。
- 外部的組件,調(diào)用 A 組件,傳入對應的方法。該方法可以是任意方法,完全又外部組件自定義,主要是觸發(fā) scroll 時需要執(zhí)行的方法。
- 定義傳入的方法,一般是判斷 scroll 滾動條快到底了,比如判斷出滾動條到最底部位置小于 20 px 時,拉取下一頁數(shù)據(jù)。
總之一定要先封裝好所有的監(jiān)聽事件,事件需要執(zhí)行的方法或者執(zhí)行方法的判斷條件交給外部組件自己去處理。