UNPKG

press-ui

Version:

简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目

36 lines (32 loc) 974 B
import { getCurrentPage } from '../common/utils/page'; import { isDef } from '../common/utils/validator'; function onPageScroll(event) { const { pressPageScroller = [] } = getCurrentPage(); pressPageScroller.forEach((scroller) => { if (typeof scroller === 'function') { scroller(event); } }); } export const pageScrollMixin = scroller => ({ created() { const page = getCurrentPage(); if (!isDef(page)) { return; } if (Array.isArray(page.pressPageScroller)) { page.pressPageScroller.push(scroller.bind(this)); } else { page.pressPageScroller = typeof page.onPageScroll === 'function' ? [page.onPageScroll.bind(page), scroller.bind(this)] : [scroller.bind(this)]; } page.onPageScroll = onPageScroll; }, destroy() { const page = getCurrentPage(); if (isDef(page)) { page.pressPageScroller = page.pressPageScroller?.filter(item => item !== scroller) || []; } }, });