| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | import { ref } from 'vue';// 小程序无法在hook中使用页面级别生命周期,需单独传入: https://ask.dcloud.net.cn/question/161173// import { onPageScroll, onReachBottom, onPullDownRefresh} from '@dcloudio/uni-app';/**  * mescroll-body写在子组件时,需通过useMescrollComp补充子组件缺少的生命周期, 相当于vue2的mescroll-comp.js文件 * 必须传入onPageScroll, onReachBottom * 当down.native为true时,需传入onPullDownRefresh */ function useMescrollComp(onPageScroll, onReachBottom, onPullDownRefresh){	// 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件	onPageScroll(e=>{		handlePageScroll(e)	})		onReachBottom(()=>{		handleReachBottom()	})		// 当down的native: true时, 还需传递此方法进到子组件	onPullDownRefresh && onPullDownRefresh(()=>{		handlePullDownRefresh()	})		const mescrollItem = ref(null)		const handlePageScroll = (e)=>{		const mescroll = getMescroll()		mescroll && mescroll.onPageScroll(e);	}		const handleReachBottom = ()=>{		const mescroll = getMescroll()		mescroll && mescroll.onReachBottom();	}		const handlePullDownRefresh = ()=>{		const mescroll = getMescroll()		mescroll && mescroll.onPullDownRefresh();	}		const getMescroll = ()=>{		if(mescrollItem.value && mescrollItem.value.getMescroll){			return mescrollItem.value.getMescroll()		}		return null	}		return {		mescrollItem,		getMescroll	}}export default useMescrollComp
 |