vue懒加载对话框API封装技巧(项目必备技能,适用于各种需要懒加载动态展示的弹框组件)

本文介绍了如何实现Vue懒加载对话框API封装,通过这种方式减少初次加载页面的资源大小,提高页面加载速度,并实现了对话框的统一管理和模块化。文章通过三组代码示例对比,展示了不同加载方式对文件大小的影响,并详细解析了API的实现过程,包括require.context的使用、Vue的extend和$mount等关键步骤,以及如何在Vue原型链上绑定$dialog方法供任意组件调用。
摘要由CSDN通过智能技术生成

    懒加载对话框的方式做到了在你调用弹框展示API的那一刻,才去加载对话框文件并最终显示弹框效果。它最大的意义在于减少了你初次进入页面时加载的文件资源请求量和大小(加载资源小了,网页加载速度自然就提升了),将它封装成API顺带也做到了统一管理对话框的目的并且使得对话框文件和页面文件分离,起到了一个模块化的效果。

    目前很多前端组件库提供的对话框组件在使用的时候,都是把对话框的代码和页面代码放在一起。例如下面Element官网的例子:

    这样一来你的页面如果有不少对话框的话,整个代码看上去就会很杂乱,同时也增大了你当前页面的大小。有人会把对话框抽离出去,用import引进使用的页面。这样仅仅做到了代码的分离,当你页面加载的时候,这部分的弹框代码也会被一同加载,而不管是否用到了这个弹框。下面我们看几组代码示例和效果动态图来一起对比一下,下方对话框的主体代码摘自Element官网示例。

    第一组(对话框代码和页面冗在一起):

    测试页面代码如下:

<template>
  <div>
    <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="30%"
      :before-close="handleClose">
      <span>这是一段信息</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        dialogVisible: false
      };
    },
    methods: {
      handleClose(done) {
        this.$confirm('确认关闭?')
          .then(_ => {
            done();
          })
          .catch(_ => {});
      }
    }
  };
</script>

    展示动态效果如下: 

    我们从响应报文里面看到文件的长度 Content-Length为23772B

    第二组(对话框代码和页面代码分离,主体页面通过import引入对话框组件):

 (下方仅做了最简单的处理,不建议照笔者所示应用于实际项目)

    对话框组件代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值