loading组件封装原理

以vue3为例,采用ts 的语言

首先可对所需数据定义在接口中

interface Prop{ //核心所需的就是 lading:boolean ,type: 'lading' | 'skeleton'}

进行调用

封装的话采用的是插槽

html 复制代码
    <div v-if="loading"  >
     <slot name="template">
        <div v-if="type === 'loading'">
            <VanLoading></VanLoading>
        </div>
        <div v-if="type === 'skeleton'">
            <VanSkeleton :row="10" ></VanSkeleton>
            <VanSkeleton avatar :row="5"></VanSkeleton>
            <!-- <VanSkeleton :row="5"></VanSkeleton> -->
        </div>
     </slot>   
  
    </div>
    <slot v-else></slot>

vant组件需要引用

骨架屏官网查看 Vant 4 - A lightweight, customizable Vue UI library for mobile web apps.

组件的使用

<组件名 :loading="pending" type="skeleton"> </组件名 >

loading采用的布尔值在调用的时候可以和变量相联合使用

比如调用接口实话数据可以采用包裹的形式

包装成一个函数的形式进行 export 里面return一个promise函数等等

比如pending采用ref(false) 函数进行时进行修改

比较需要注意的时一个参数赋值为T 时会有类型的校验,需要进行断言处理

说到这里的话就提一下webpack里面的tree-shaking进行片段处理的时候不能处理commonjs模块里的因为他里面的require 和module.exports是动态引入的

相关推荐
PC2005_cloud3 分钟前
Nginx 防盗链配置实战:用 referer 模块保护网站静态资源
前端·后端
福兮说4 分钟前
Canvas 文字排版:measureText 量出来的宽度为什么总是不对
前端·javascript
夏幻灵11 分钟前
从零理解 Redux:从 state、action、reducer 到 Redux Toolkit 与异步请求
前端
烈风逍遥17 分钟前
第四篇:AI 模块架构设计:多 Provider 切换、RAG 知识库与 Agent 编排
前端·后端·架构
用户808061814369335 分钟前
JavaScript 面向对象入门到精通
前端·javascript
吠品44 分钟前
STM32最小系统板引脚梳理与配置实操
前端·javascript·vue.js
曹一二1 小时前
前端性能优化场景题:图片懒加载 + 大数据渲染
前端
GISer_Jing1 小时前
Come on,工作总结
前端·ai·前端框架
Hilaku1 小时前
Sass 和 Less 在 2026 年彻底多余了吗?
前端·javascript·程序员
百慕大三角1 小时前
AI 写代码最大的风险不是不会写,而是太能写:我给 Coding Agent 加的 4 层工程约束
前端·ai编程·trae