更新记录

1.0.0(2024-11-15) 下载此版本

  • 初始版本

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.32,Android:支持,iOS:支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

kux-apiuse-loading

该插件在集成了 uni.showLoading 的异步版本封装的同时,又新增了页面响应式变量方便控制全局自定义loading组件状态,使业务代码更简洁高效。

插件特色

  • 异步hooks函数风格
  • 简洁高效
  • loading响应式变量

用法演示

<template>
    <!-- #ifdef APP -->
    <scroll-view style="flex:1">
    <!-- #endif -->
        <view class="flex px-3 py-3">
            <text class="text-xl mb-2 font-bold">showLoading用法演示</text>
            <button type="primary" class="w-full mb-2" @tap="onTapShowLoading">显示 loading 提示框</button>
            <button type="default" class="w-full mb-2" @tap="hideLoading">隐藏 loading 提示框</button>
            <text class="text-xl mb-2 font-bold">页面loading变量切换用法演示</text>
            <text class="mb-2 text-lg">请求loading: {{ loading }}</text>
            <button type="primary" class="w-full mb-2" @tap="onTapMockRequest">开始模拟请求</button>
        </view>
    <!-- #ifdef APP -->
    </scroll-view>
    <!-- #endif -->
</template>

<script setup>
    import { useLoading } from '@/uni_modules/kux-apiuse-loading';

    const { loading, toggle, setLoading, showLoading, hideLoading } = useLoading(false);

    const request = async (): Promise<boolean> => {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(true);
            }, 2000);
        })
    }

    const onTapShowLoading = async () => {
        const { success, fail } = await showLoading({
            title: ''
        } as ShowLoadingOptions)

        if (fail != null) {
            console.log('错误', fail);
            return
        }

        console.log(success);

        return
    }

    const onTapMockRequest = async () => {
        toggle()
        await request()
        toggle()
    }

    watchEffect(() => {
        if (loading.value) {
            showLoading({
                title: ''
            })
        } else {
            hideLoading()
        }
    })
</script>

<style>

</style>

注意

该插件运行环境要求需要uni编译器版本在 4.32 及以上

useLoading 返回参数说明

loading

页面 loading 响应式变量, 方便控制页面全局的自定义loading组件状态

toggle

用来切换 loading 响应式变量的值, 每次调用后 loading 会在 true/false 之间切换.

setLoading

用来手动设置 loading 响应式变量的值

showLoading

对应 uni.showLoading

hideLoading

对应 uni.hideLoading

showLoading 返回参数说明

success

对应 uni.showLoadingShowLoadingSuccess

fail

对应 uni.showLoadingIPromptError

类型定义

/**
 * interface.uts
 * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示
 */

export type KuxShowLoadingReturn = {
    success: ShowLoadingSuccess | null
    fail: ShowLoadingFail | null
}

export type KuxUseLoadingReturn = {
    setLoading: (loadingValue: boolean) => void
    toggle: () => void
    showLoading: (options: ShowLoadingOptions) => Promise<KuxShowLoadingReturn>
    hideLoading: () => void
    loading: Ref<boolean>
}

export declare function useLoading (initLoading: boolean): KuxUseLoadingReturn

结语

kux 不生产代码,只做代码的搬运工,致力于提供uts 的 js 生态轮子实现,欢迎各位大佬在插件市场搜索使用 kux 生态插件:https://ext.dcloud.net.cn/search?q=kux

友情推荐

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问