Maison  >  Article  >  interface Web  >  Comment implémenter les fonctions d'actualisation déroulante et de chargement pull-up dans uniapp

Comment implémenter les fonctions d'actualisation déroulante et de chargement pull-up dans uniapp

PHPz
PHPzoriginal
2023-04-14 15:34:147245parcourir

Avec la mise à niveau continue du développement des terminaux mobiles, la demande des développeurs pour les applications mobiles est également de plus en plus élevée. Dans de nombreuses applications mobiles, le pull-down pour actualiser et le pull-up pour charger sont des fonctions plus essentielles. Afin d'améliorer l'expérience utilisateur, de nombreuses applications mobiles ajouteront ces deux fonctions. Ici, nous allons présenter comment implémenter le menu déroulant pour actualiser et le pull-up pour charger plus de fonctions dans uniapp.

1. Introduction au contenu de base

uniapp est un framework de développement d'applications multiplateforme basé sur le framework Vue.js, qui prend en charge l'écriture unique et la publication multi-fins. Grâce à ses bonnes fonctionnalités multiplateformes et à ses nombreuses API natives intégrées, les développeurs peuvent utiliser ces API directement dans Uniapp sans avoir à apprendre d'autres langages de développement.

Dans uniapp, l'actualisation déroulante et le chargement pull-up sont des composants davantage intégrés, à savoir <uni-scroll-view> Grâce à ce contrôle, nous pouvons réaliser l'actualisation déroulante et. fonctions de chargement pull-up. Il n'est pas nécessaire d'impliquer d'autres modules. <uni-scroll-view>,通过该控件我们可以实现下拉刷新和上拉加载功能,而不需要牵扯到其他的模块。

二、下拉刷新

下拉刷新是指当页面内容被下拉时,触发事件,从服务器获取最新数据,替换当前页面的数据。在本章节中,我们将介绍如何在uniapp中使用<uni-scroll-view>组件实现下拉刷新功能。

  1. 打开页面

在开发uniapp页面之前,首先需要进入项目工具Hbuilder X中并新建一个uniapp项目,由于我们要实现下拉刷新和上拉加载的功能,就需要先去确认使用的是uni-ui组件库,因此在新建项目选择页面的时候一定要选中uni-ui。

  1. 编写代码

下面就是具体的实现方法:

注:示例代码仅提供参考,不保证100%正确性。

index.vue代码:

<!-- 下拉刷新 -->
<uni-scroll-view
    class="content"
    :enable-back-to-top="true"
    @downRefresh="onDownRefresh" 
    refresher-default-style
    :refresher-triggered="isRefreshing"
    refresher-loading="{{isLoading}}"
    refresher-enabled="{{true}}"
    style="height:100vh;"
>
    <!--该区域可以放置需要下拉刷新的内容-->
    <!--......-->
    <div class="list-view">
        <ul>
            <li v-for="item in items" :key="item.id">{{item.text}}</li>
        </ul>
    </div>
</uni-scroll-view>

<script>
export default {
    data() {
        return {
            items: [
                {text: 'item1', id:1},
                {text: 'item2', id:2},
                {text: 'item3', id:3},
                {text: 'item4', id:4},
                {text: 'item5', id:5},
                {text: 'item6', id:6},
                {text: 'item7', id:7},
                {text: 'item8', id:8},
                {text: 'item9', id:9},
                {text: 'item10', id:10}
            ],
            isRefreshing: false,
            isLoading: false,
        }
    },
    methods: {
        onDownRefresh() {
            this.isRefreshing = true;
            setTimeout(() => {
                this.isRefreshing = false;
                uni.stopPullDownRefresh()
            }, 2000)
        },
    }
}
</script>

<style>
.content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
</style>

经过上面的步骤,我们就可以实现下拉刷新功能了。具体而言是通过<uni-scroll-view>组件的downRefresh事件来实现,当下拉触发该事件时,我们设置isRefreshingtrue,此时显示刷新的状态。时间到达之后,我们再将isRefreshing设置为false,同时关闭uni.stopPullDownRefresh()

三、上拉加载

上拉加载更多是指当页面内容被向上拉动时,触发函数,从服务器获取更多数据,添加到页面的尾部。在本章中,我们将介绍如何在uniapp中使用<uni-scroll-view>组件实现上拉加载更多功能。

  1. 编写代码

上面的代码已经包含了下拉刷新的功能,因此我们只要在上述代码中加上上拉加载功能的代码即可。

<uni-scroll-view
    class="content"
    :enable-back-to-top="true"
    @downRefresh="onDownRefresh" 
    refresher-default-style
    :refresher-triggered="isRefreshing"
    refresher-loading="{{isLoading}}"
    refresher-enabled="{{true}}"
    @scrolltolower="loadMore" 
    :onLoadmore="false"
    style="height: 100vh;"
>
    <!--该区域可以放置需要下拉刷新的内容-->
    <!--......-->
    <div class="list-view">
        <ul>
            <li v-for="item in items" :key="item.id">{{item.text}}</li>
        </ul>
        <!--上拉加载-->
        <div v-if="isLoadMore">
            <span>loading...</span>
        </div>
    </div>
</uni-scroll-view>

<script>
export default {
    data() {
        return {
            items: [
                {text: 'item1', id:1},
                {text: 'item2', id:2},
                {text: 'item3', id:3},
                {text: 'item4', id:4},
                {text: 'item5', id:5},
                {text: 'item6', id:6},
                {text: 'item7', id:7},
                {text: 'item8', id:8},
                {text: 'item9', id:9},
                {text: 'item10', id:10}
            ],
            isRefreshing: false,
            isLoading: false,
            isLoadMore: false,
        }
    },
    methods: {
        onDownRefresh() {
            this.isRefreshing = true;
            setTimeout(() => {
                this.isRefreshing = false;
                uni.stopPullDownRefresh()
            }, 2000)
        },
        loadMore() {
            this.isLoadMore = true;
            setTimeout(() => {
                // 模拟从服务器获取了10个新数据
                for (let i=0; i<10; i++) {
                    const item = {
                        id: this.items.length + i + 1,
                        text: `item${this.items.length + i + 1}`
                    };
                    this.items.push(item);
                }
                this.isLoadMore = false;
            }, 2000)
        }
    }
}
</script>

<style>
.content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
</style>

如上述代码所示,我们通过<uni-scroll-view>组件中的@scrolltolower事件来实现上拉加载更多。当页面内容滑动到了底部时,我们调用this.loadMore()方法,该方法中我们可以加载更多的数据,让页面得到更新。

最后,我们为isLoadMore设置true,此时页面上显示“loading”状态。等待2秒钟后,将10条新数据添加到items数据中,同时关闭isLoadMore

2. Actualisation déroulante

L'actualisation déroulante signifie que lorsque le contenu de la page est extrait, un événement est déclenché, les dernières données sont obtenues du serveur et les données de la page actuelle sont remplacées. Dans ce chapitre, nous présenterons comment utiliser le composant <uni-scroll-view> pour implémenter la fonction d'actualisation déroulante dans uniapp.

  1. Ouvrez la page
Avant de développer la page uniapp, vous devez d'abord entrer dans l'outil de projet Hbuilder X et créer un nouveau uniapp , puisque nous voulons implémenter les fonctions d'actualisation déroulante et de chargement pull-up, nous devons d'abord confirmer que nous utilisons la bibliothèque de composants uni-ui, nous devons donc sélectionner uni-ui lors de la création d'une nouvelle page de sélection de projet. 🎜
  1. Écrire le code
🎜Voici la méthode de mise en œuvre spécifique : 🎜🎜Remarque : l'exemple de code est uniquement à titre de référence et ne garantit pas 100 % d'exactitude. 🎜🎜code index.vue : 🎜rrreee🎜Après les étapes ci-dessus, nous pouvons implémenter la fonction d'actualisation déroulante. Plus précisément, il est implémenté via l'événement downRefresh du composant <uni-scroll-view> Lorsque le menu déroulant déclenche cet événement, nous définissons isRefreshing. est true et l'état actualisé est affiché à ce moment. Une fois le moment venu, nous définissons isRefreshing sur false et fermons uni.stopPullDownRefresh(). 🎜🎜3. Chargement pull-up 🎜🎜Le chargement pull-up more signifie que lorsque le contenu de la page est tiré vers le haut, une fonction est déclenchée pour obtenir plus de données du serveur et les ajouter à la fin de la page. Dans ce chapitre, nous présenterons comment utiliser le composant <uni-scroll-view> dans uniapp pour obtenir davantage de fonctions de chargement pull-up. 🎜
  1. Écrire le code
🎜Le code ci-dessus inclut déjà la fonction d'actualisation déroulante, il nous suffit donc d'ajouter le code de la fonction de chargement pull-up au code ci-dessus. 🎜rrreee🎜Comme le montre le code ci-dessus, nous implémentons le chargement pull-up via l'événement @scrolltolower dans le composant <uni-scroll-view>. Lorsque le contenu de la page glisse vers le bas, nous appelons la méthode this.loadMore(), dans laquelle nous pouvons charger plus de données et mettre à jour la page. 🎜🎜Enfin, nous définissons true pour isLoadMore, et l'état "chargement" est affiché sur la page. Après avoir attendu 2 secondes, ajoutez 10 nouvelles données aux données items et fermez l'état isLoadMore. 🎜🎜4. Résumé🎜🎜Grâce aux méthodes présentées dans cet article, nous pouvons rapidement implémenter davantage de fonctions d'actualisation déroulante et de chargement pull-up dans uniapp. Si vous n'avez pas encore essayé cette fonctionnalité, vous pouvez suivre les étapes décrites dans cet article pour démarrer rapidement et améliorer encore votre application mobile. Si vous avez des questions ou des requêtes, veuillez les laisser dans la zone de commentaires. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn