


Cara menggunakan komponen scrpll-view untuk melaksanakan muat semula tarik-turun dalam uniapp
Bagaimana untuk menggunakan komponen scrpll-view untuk melaksanakan muat semula tarik-turun dalam uniapp? Artikel berikut akan memperkenalkan kepada anda cara menggunakan paparan tatal untuk menyesuaikan muat semula tarik ke bawah dalam uniapp Saya harap ia akan membantu anda!
Uniapp pull-down refresh
Terdapat dua kaedah untuk uniapp pull-down refresh, satu ialah keseluruhan muat semula tarik-turun, Gunakan fungsi kitaran hayat halaman padaPullDownRefresh yang satu lagi ialah muat semula tarik-turun tempatan, juga dipanggil muat semula tarik-turun tersuai, menggunakan acara muat semula tarik-turun tersuai dalam komponen scrpll-view.
1 Muat semula seluruh halaman (onPullDownRefresh)
Tentukan fungsi pemprosesan onPullDownRefresh dalam js (dan onLoad, dsb. Tahap yang sama seperti fungsi kitaran hayat), dengar acara muat semula tarik turun pengguna halaman. [Dokumen Rasmi]Tiada pengenalan lagi di sini! Tumpuan hari ini adalah di bawah
2. Muat semula halaman tersuai (paparan tatal) yang ditemui dalam komponen
Masalahnya
-
tidak boleh mencetuskan drop-down (menyebabkan penyelesaian masalah)
1 Bahagian luar komponen paparan tatal tidak dibalut dengan paparan laman web rasmi tidak menyebut masalah ini, tetapi Jika tiada paparan luaran yang membungkus komponen ini sahaja, tiada cara untuk mencetuskan peristiwa dalam komponen paparan tatal.
2. Paparan tatal tidak mempunyai ketinggian tetap dalam CSS. , kandungan di dalam komponen akan dipaparkan Ia hanya akan menatal ke atas dan ke bawah dalam separuh skrin Ia tidak akan mencetuskan bar skrol halaman . Jika sukar untuk menentukan ketinggian, anda boleh menggunakan pengiraan pengiraan dalam Ini ditunjukkan dalam contoh (Perhatikan bahawa apabila menggunakan kalk untuk mengira, mesti ada ruang di sekeliling -).
max-hightscss(lang='scss')
3. Jika tinggi ditetapkan sebagai peratusan, drop-down tidak boleh dicetuskan Anda boleh menggunakanuntuk tinggi, tetapi anda tidak boleh menggunakan min-hight. . 4 Jika tatal-y tidak ditetapkan
tidak menatal ke atas untuk mencetuskan lungsur turun, tetapi mencetuskan lungsur turun dalam halaman yang kelihatan -
Lalai rasmi adalah tidak kira Di mana sahaja bar skrol halaman berada, selagi anda menatal ke atas atau ke bawah pada halaman paparan skrol, fungsi lungsur turun akan dicetuskan, yang menjadikan pengalaman pengguna sangat lemah . Anda boleh menggunakan fungsi
yang dicetuskan semasa menatal untuk mendapatkan kedudukan bar tatalpandangan tatal, dan kemudian mengawal
Pergi terus ke kod untuk melihat: html:@scroll
untuk menghidupkan dan mematikan penyegaran tarik ke bawah apabila tatal-. lihat skrol bar skrol ke atas, jadikan benar dan syarat lain adalah palsu.refresher-enabled
refresher-enabled
Pada asasnya, ini adalah satu-satunya kaedah atribut yang digunakan untuk muat semula tarik-turun! js:
<template> <view> <scroll-view show-scrollbar="true" style="height: 300px" scroll-y="true" :refresher-enabled="isOpenRefresh" :refresher-triggered="triggered" :refresher-threshold="100" refresher-background="gray" @refresherpulling="onPulling" @refresherrefresh="onRefresh" @refresherrestore="onRestore" @refresherabort="onAbort" @scroll="onScroll" > <view v-if="!isOpenRefresh">别拉了,没有更多了~</view> <view class="item" v-for="(item, index) in dataList" :key="index">{{ item }}</view> </scroll-view> </view> </template>
gaya:
export default { data() { return { triggered: false, dataList: [], arr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], page: 0, isOpenRefresh: true // 是否开启下拉 }; }, onLoad() { this._freshing = false; this.getData() }, methods: { dealArray(array, groupNum) { let temp = []; for (let i = 0, len = array.length; i < len; i += groupNum) { temp.push(array.slice(i, i + groupNum)); } return temp; }, // 自定义下拉刷新控件被下拉 onPulling(e) { console.log("onpulling", e); if (e.detail.deltaY < 0) return // 防止上滑页面也触发下拉 this.triggered = true; }, // 自定义下拉刷新被触发 onRefresh() { if (this._freshing) return; this._freshing = true; this.page++; setTimeout(() => { this.triggered = false; this._freshing = false; this.getData(); }, 500); }, // 自定义下拉刷新被复位 onRestore() { this.triggered = 'restore'; // 需要重置 console.error("onRestore"); }, // 自定义下拉刷新被中止 onAbort() { console.error("onAbort"); }, getData() { // 前端模拟分页 let temp = this.dealArray(this.arr, 3) if (this.page > temp.length - 1) { this.isOpenRefresh = false return } this.dataList.push(...temp[this.page]) } }, };
<style> view { text-align: center; } .item:nth-child(odd) { background-color: antiquewhite; } .item:nth-child(even) { background-color: aquamarine; } </style>
// Halang halaman daripada tergelincir ke atas dan mencetuskan drop-down
@refresherpulling="onPulling"
if (e.detail.deltaY < 0) return
Demonstrasi:
muncul di mana-mana pada halaman Meluncur ke bawah halaman akan mencetuskan drop-down, masalah seperti ini. Anda boleh menggunakan fungsi
Anda juga boleh menggunakan
@scrolltoupper="scrolltoupper"
// 触顶操作-准入 scrolltoupper() { this.isAllowRefresh = true } // 自定义下拉刷新控件被下拉 onPulling(e) { if (e.detail.deltaY < 0) return if (!this.isAllowRefresh) return; this.isRefresh = true; console.log("onpulling", e); }
dan biarkan ia tercetus apabilatutorial uniapp, iaitu apabila ia mencapai puncak! Pencetus lagi! Tetapi apabila dia menemuinya, dia perlu meluncurkan halaman dan bar skrol muncul, dan kemudian dia akan mendengar! Kita boleh memulakannya apabila
Disyorkan: "@scroll="onScroll"
supaya pembolehubahnya pada mulanya 0!scroll-top
===0
init
export default class Index extends mixins(uiMixin) { scrollTop: number = 0 // 监听页面是否滚动 onScroll(e) { this.scrollTop = e.detail.scrollTop } // 自定义下拉刷新被触发 onRefresh() { if (this.scrollTop === 0) { if (this._freshing) return; this._freshing = true; this.page++; setTimeout(() => { this.triggered = false; this._freshing = false; this.getData(); }, 500); } } })
Atas ialah kandungan terperinci Cara menggunakan komponen scrpll-view untuk melaksanakan muat semula tarik-turun dalam uniapp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Langkah untuk melancarkan pratonton projek UniApp dalam WebStorm: Pasang pemalam Alat Pembangunan UniApp Sambung ke tetapan peranti Pratonton pelancaran WebSocket

Secara umumnya, uni-app adalah lebih baik apabila fungsi asli yang kompleks diperlukan; Selain itu, uni-app mempunyai: 1. Sokongan Vue.js/JavaScript 2. Komponen asli yang kaya 3. Ekosistem yang baik; Kelemahannya ialah: 1. Isu prestasi; 2. Kesukaran dalam menyesuaikan antara muka. MUI mempunyai: 1. Sokongan Reka Bentuk Bahan 2. Fleksibiliti tinggi 3. Perpustakaan komponen/tema yang luas. Kelemahannya ialah: 1. Kebergantungan CSS; 2. Tidak menyediakan komponen asli 3. Ekosistem kecil.

UniApp menggunakan HBuilder

pembangunan uniapp memerlukan asas berikut: teknologi bahagian hadapan (HTML, CSS, JavaScript) pengetahuan pembangunan mudah alih (platform iOS dan Android) Node.js asas lain (alat kawalan versi, IDE, simulator pembangunan mudah alih atau pengalaman penyahpepijatan mesin sebenar)

UniApp mempunyai banyak kemudahan sebagai rangka kerja pembangunan merentas platform, tetapi kelemahannya juga jelas: prestasi dihadkan oleh mod pembangunan hibrid, mengakibatkan kelajuan pembukaan yang lemah, pemaparan halaman dan tindak balas interaktif. Ekosistem tidak sempurna dan terdapat beberapa komponen dan perpustakaan dalam bidang tertentu, yang mengehadkan kreativiti dan merealisasikan fungsi kompleks. Isu keserasian pada platform berbeza terdedah kepada perbezaan gaya dan sokongan API yang tidak konsisten. Mekanisme keselamatan WebView adalah berbeza daripada aplikasi asli, yang mungkin mengurangkan keselamatan aplikasi. Keluaran dan kemas kini aplikasi yang menyokong berbilang platform pada masa yang sama memerlukan berbilang kompilasi dan pakej, meningkatkan kos pembangunan dan penyelenggaraan.

Apabila memilih antara UniApp dan pembangunan asli, anda harus mempertimbangkan kos pembangunan, prestasi, pengalaman pengguna dan fleksibiliti. Kelebihan UniApp ialah pembangunan merentas platform, lelaran pantas, pembelajaran mudah dan pemalam terbina dalam, manakala pembangunan asli lebih unggul dalam prestasi, kestabilan, pengalaman asli dan kebolehskalaan. Timbang kebaikan dan keburukan berdasarkan keperluan projek khusus UniApp sesuai untuk pemula, dan pembangunan asli sesuai untuk aplikasi kompleks yang mengejar prestasi tinggi dan pengalaman yang lancar.

Pustaka komponen yang disyorkan untuk uniapp untuk membangunkan program kecil: uni-ui: Dihasilkan secara rasmi oleh uni, ia menyediakan komponen asas dan perniagaan. vant-weapp: Dihasilkan oleh Bytedance, dengan reka bentuk UI yang ringkas dan cantik. taro-ui: dihasilkan oleh JD.com dan dibangunkan berdasarkan rangka kerja Taro. fish-design: Dihasilkan oleh Baidu, menggunakan gaya reka bentuk Material Design. naive-ui: Dihasilkan oleh Youzan, reka bentuk UI moden, ringan dan mudah untuk disesuaikan.

UniApp adalah berdasarkan Vue.js, dan Flutter adalah berdasarkan Dart kedua-duanya menyokong pembangunan merentas platform. UniApp menyediakan komponen yang kaya dan pembangunan mudah, tetapi prestasinya dihadkan oleh WebView Flutter menggunakan enjin pemaparan asli dengan prestasi cemerlang, tetapi lebih sukar untuk dibangunkan. UniApp mempunyai komuniti Cina yang aktif, dan Flutter mempunyai komuniti yang besar dan global. UniApp sesuai untuk senario dengan pembangunan pesat dan keperluan prestasi rendah Flutter sesuai untuk aplikasi kompleks dengan penyesuaian tinggi dan prestasi tinggi.
