更新记录

1.0.0.1(2026-01-04) 下载此版本

master

1.0.0(2026-01-04) 下载此版本

master


平台兼容性

uni-app(4.13)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
-
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

安装

在市场导入xf-pageuni_modules版本的即可,无需import

组件关联说明

代码演示

基本用法

  • 基础页面使用组件代码如下:
<template>
    <view class="main-page">
        <xf-page ref="xfPageRef" :apiFn="request" :canRefresh="true" :fixed="false">
            <view class="main xf-col" style="background-color: #FFF; height: 300px;" v-if="detail">
                <text>名字: {{detail.name}}</text>
                <text>年龄: {{detail.age}}</text>
            </view>
        </xf-page>
    </view>
</template>
<script lang="ts" setup>
    import { ref } from 'vue'
    const detail = ref()
    //page加载回调
    const request = () => {
        return apiWeiboList().then((res : any) => {
            detail.value = res
            return res
        })
    }
    //模拟接口请求
    const apiWeiboList = () => {
        return new Promise((resolute, reject) => {
            setTimeout(function () {
                try {
                    let res = {
                        id: 1,
                        name: 'shenhl',
                        age: 20
                    };
                    //模拟接口请求成功
                    resolute(res);
                } catch (e) {
                    //模拟接口请求失败
                    reject(e);
                }

            }, 2000)
        })
    }
</script>
  • 分页页面使用组件代码如下:
<template>
    <xf-page ref="xfPageRef" :apiFn="request" isUseVirtualList isPaging :canRefresh="true" :fixed="false">
        <view class="item xf-col" v-for="(item,index) in dataList" :key="index">
            <text> {{item.title}}</text>
            <text class="b-mt16"> {{item.content}}</text>
        </view>
    </xf-page>
</template>

<script lang="ts" setup>

    import { ref } from 'vue'
    const dataList = ref([])
    //page加载回调
    const request = (page :number ,pageSize:number) => {
        return apiWeiboList(page, pageSize).then((res : any) => {
            dataList.value = dataList.value.concat(res)
            return res
        })
    }
    // 获取微博列表
    const apiWeiboList = (pageNum, pageSize) => {
        return new Promise((resolute, reject)=>{
            //延时2秒,模拟联网
            setTimeout(function() {
                try {
                    let list = [];
                    if(!pageNum){
                        //此处模拟下拉刷新返回的数据
                        let id=new Date().getTime();
                        let newObj={id:id, title:"【新增微博"+id+"】 新增微博", content:"新增微博的内容,新增微博的内容"};
                        list.push(newObj);
                    }else{
                        //此处模拟上拉加载返回的数据
                        for (let i = 0; i < pageSize; i++) {
                            let upIndex=(pageNum-1)*pageSize+i+1;
                            let newObj={id:upIndex, title:"【微博"+upIndex+"】 标题标题标题标题标题标题", content:"内容内容内容内容内容内容内容内容内容内容"};
                            list.push(newObj);
                        }
                        console.log("page.num=" + pageNum + ", page.size=" + pageSize + ", curPageData.length=" + list.length);
                    }
                    //模拟接口请求成功
                    resolute(list);
                } catch (e) {
                    //模拟接口请求失败
                    reject(e);
                }
            }, 3000)
        })
    }

</script>

API

Props

属性名 说明 类型 默认值
isUseVirtualList 是否使用虚拟list,否则只显示整体 boolean false
apiFn 接口调用方法有回调 func -
canRefresh 页面是否可以下拉刷新 boolean false
safeAreaInsetBottom 是否打开安全区域 boolean false
fixed 是否铺满屏幕 popup boolean false
isCellHeightFiexed 页面中的cell高度是否固定不变的 boolean false
isPaging 是否分页 string false
pageSize 每页数据量 number 默认10

事件 Emits

事件名 说明 返回值
virtualListChange 虚拟列表当前渲染的数组改变时触发

外部调用事件 Expose

事件名 说明 返回值
show 打开基础弹框

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。