Vuescroll.jsパッケージに基づいて荷重を引張り、プルダウンリフレッシュ組立品の実際の応用開発を行う.
何がvuescrollですか
公式サイトからの説明:vuescrollはVue.jsカスタムスクロールバーに基づくプラグインで、2つのモードがあります.native:PC端末に適用し、基本的なカスタムスクロールバーをサポートします.slade:移動端に適用されます.プルダウン-ローディング、リフトアップリフレッシュ、ロードショーなどをサポートします.しかし、これは、SLideモードが移動端にのみ使用されるという意味ではなく、移動端がSLideモードにより適合しているからである.余計なことを言わないで、直接コードしてください.
インストール
公式サイトからの説明:vuescrollはVue.jsカスタムスクロールバーに基づくプラグインで、2つのモードがあります.native:PC端末に適用し、基本的なカスタムスクロールバーをサポートします.slade:移動端に適用されます.プルダウン-ローディング、リフトアップリフレッシュ、ロードショーなどをサポートします.しかし、これは、SLideモードが移動端にのみ使用されるという意味ではなく、移動端がSLideモードにより適合しているからである.余計なことを言わないで、直接コードしてください.
インストール
npm install vuescroll --save
グローバル登録// **main.js**
import Vue from 'vue';
import vuescroll from 'vuescroll';
//
Vue.use(vuescroll, {
ops: {}, //
name: 'myScroll' // , vueScroll
});
/*
*
*/
Vue.use(vuescroll); // install the vuescroll first
Vue.prototype.$vuescrollConfig = {
bar: {
background: '#000'
}
};
ローカル登録
import vuescroll from 'vuescroll';
export default {
components: {
vuescroll
}
};
ローカルパッケージvue-scroll.vueコンポーネント
{{lang == 'zh' ? ' ': 'No More Data'}}
import vuescroll from 'vuescroll';
export default {
props: {
//
lang: {
default: 'zh' // en
},
//
autoLoadDistance:{
default: 10
},
//
isRefresh:{
default: true
},
//
isPushLoad:{
default: true
},
// true
noData:{
default: false
},
//
refreshStart:{
default:()=>{}
},
//
refreshDeactivate:{
default:()=>{}
},
//
loadStart:{
default:()=>{}
},
//
loadDeactivate:{
default:()=>{}
}
},
components:{vuescroll},
data() {
const config = {};
const ops = {
vuescroll: {
mode: 'slide',
pullRefresh: {
enable: this.isRefresh
},
pushLoad: {
enable: this.isPushLoad,
auto: true, //
autoLoadDistance: this.autoLoadDistance
}
}
};
if (this.lang == 'zh') {
ops.vuescroll.pullRefresh.tips = {
deactive: ' ',
active: ' ',
start: ' ...',
beforeDeactive: ' !'
};
ops.vuescroll.pushLoad.tips = {
deactive: ' ',
active: ' ',
start: ' ...',
beforeDeactive: ' !'
};
}
return {
ops,
config
};
},
methods: {
//
// vsInstance vm===this
// refreshDom === dom
handleRS(vsInstance, refreshDom, done) {
if(this.refreshStart){
this.refreshStart(done)
}else{
this.setDone(done)
}
},
//
handleRBD(vm, loadDom, done) {
if(this.refreshDeactivate){
this.refreshDeactivate(done)
}else{
setTimeout(()=>{
this.setDone(done)
},600)
}
},
//
handleLoadStart(vm, dom, done) {
if(this.loadStart){
this.loadStart(done)
}else{
this.setDone(done)
}
},
//
handleLBD(vm, loadDom, done) {
if (!this.$parent.noData) {
if(this.loadDeactivate){
this.loadDeactivate(done)
}else{
setTimeout(()=>{
this.setDone(done)
},600)
}
}else{
setTimeout(()=>{
this.setDone(done)
},600)
}
},
// ref
// type load refresh
trigger(type='load') {
this.$refs['vs'].triggerRefreshOrLoad(type);
},
setDone(done){
done()
}
}
};
test.vueで使う
export default {
data(){
return {
noData:false // true
}
},
methods:{
//
refreshStart(done){
setTimeout(()=>{
// ajax , done()
done()
},1600)
},
//
loadStart(done){
setTimeout(()=>{
// ajax , done()
done()
},1600)
}
}
}
完成効果-テスト-および実際のプロジェクトの鐘で使用します.