本文介紹了vue mint-ui源碼解析之loadmore組件,分享給大家,具體如下:
接入
官方接入文檔mint-ui loadmore文檔
接入使用Example
html
<div id="app"> <mt-loadmore :top-method="loadTop" :bottom-method="loadBottom" :bottom-all-loaded="allLoaded" :max-distance="150" @top-status-change="handleTopChange" ref="loadmore"> <div slot="top" class="mint-loadmore-top"> <span v-show="topStatus === 'pull'" :class="{ 'rotate': topStatus === 'drop' }">↓</span> <span v-show="topStatus === 'loading'">Loading...</span> <span v-show="topStatus === 'drop'">釋放更新</span> </div> <ul class="scroll-wrapper"> <li v-for="item in list" @click="itemClick(item)">{{ item }}</li> </ul> </mt-loadmore></div>css
<link rel="stylesheet" rel="external nofollow" >*{ margin: 0; padding: 0;}html, body{ height: 100%;}#app{ height: 100%; overflow: scroll;}.scroll-wrapper{ margin: 0; padding: 0; list-style: none;}.scroll-wrapper li{ line-height: 120px; font-size: 60px; text-align: center;}js
<!-- 先引入 Vue --><script src="https://unpkg.com/vue/dist/vue.js"></script><!-- 引入組件庫 --><script src="https://unpkg.com/mint-ui/lib/index.js"></script><script> new Vue({ el: '#app', data: { list: [], allLoaded: false, topStatus: '' }, created: function () { var i =0, len=20; for (; i< len; i++){ this.list.push('demo' + i); } }, methods: { loadTop: function () { // 刷新數據的操作 var self = this; setTimeout(function () { self.list.splice(0, self.list.length); var i =0, len=20; for (; i< len; i++){ self.list.push('demo' + i); } self.$refs.loadmore.onTopLoaded(); }, 2000); }, loadBottom: function () { // 加載更多數據的操作 //load data //this.allLoaded = true;// 若數據已全部獲取完畢 var self = this; setTimeout(function () { var i =0; len = 10; for (; i< len; i++){ self.list.push('dddd' + i); } self.$refs.loadmore.onBottomLoaded(); }, 2000); }, handleTopChange: function (status) { this.topStatus = status; }, itemClick: function (data) { console.log('item click, msg : ' + data); } } });</script>實現原理解析
布局原理
loadmore組件內部由三個slot組成,分別為name=top,name=bottom,default; top用于展示下拉刷新不同狀態展示的內容,初始設置margin-top為-top的高度來將自己隱藏 bottom同top,用于展示上拉加載更多不同狀態展示的內容 default填充滾動詳細內容新聞熱點
疑難解答
圖片精選