改造一下上次vue的loading插件

2024-06-07 21:32

本文主要是介绍改造一下上次vue的loading插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        上一次我们将loading组件封装成了插件,基本上使用起来并没有多大问题,刚好足够使用。我们现在来稍微改造一些这个loading插件,实现一个简单的功能,使之能够延迟关闭loading这个浮层。

        目前这个插件我们只能够this.$vLoading.show()和this.$vLoading.hide()这两个方法,若是想要其实现延迟关闭,我们需要在hide这个方法里面传递一个延迟关闭的参数,可以是预先设定好的slow, medium或者fast这种参数进去,或者直接传递一个延迟的时间。

        再发一下上次的代码截图:

        相信很多人看出来了这代码其实写得并不是那么美观(呕~写的时候并没有这感觉啊),所有逻辑操作都写在了install的方法里面了,看起来有点乱。其实我们只需要在外面写好一些方法逻辑,然后在统一起来挂载到Vue实例上面。

        有点跑题了,不过这次我修改我一并优化了这个loading插件的代码,使之看起来更“合理”。刚才说到要传参数给这个hide的方法,那我们就应该在hide里面接收一个参数,并且设置好相对应的延迟。先贴一下我这次优化后的代码,如下图:

       可以看到,在定义hide的那个方法里面,我们接受了一个叫做delayTime的参数,也就是说我们在使用这个方法的时候,我们应该这样传递:this.$vLoading.hide({delayTime: 800})。可是我们为啥要这样子传一个对象进去?而不是直接this.$vLoading.hide(800)这样子,毕竟这里只有一个参数而已?这样子做其实是为了代码的可读性,别人一看就知道,哦这里是延迟了800ms就hide浮层。

       让我们看下内部实现代码部分,,可以看到图中我用红框标记起来那部分,这里使用到了ES6的函数参数的默认值。在不使用ES6之前,我们写函数参数的默认值的时候我们一般是这样子写的,但是这样子会带来一些不必要的麻烦,emmm,看下这个图:我们当想输入内容为空字符串给它时,它却给我们取了我们设置的“默认值”,这与我们预期的结果不一致(输出为空)。为了解决这个问题,我们使用了es6的语法来写这个默认值设置:可以看到,我们输入空字符串时,预期的输出结果也是空,这就达到我们的目的了。当然es6还有其他设置函数默认值的方法,建议移步到阮大大的ECMAScript 6入门的函数扩展章节参观学习学习。

优化部分:

      这次的优化,是看到element-ui插件在页面上的一些行为,才想到优化,跟它们一样。毕竟人家这么做肯定有道理。先看下代码:

      在没有优化之前,页面上已经插入了该插件的节点。

       在优化之后,我们构造了loading的实例,但我们不着急将其插入到页面中,而是等到我们调用才将其插入,如果隐藏不用的话,就将其移除。在页面上就不会出现相对应的注释节点。其实我不清楚知道这里是为啥,估计应该是Vue的虚拟dom什么的一些节点用的,暂时搞不清楚element在这里如果插件不使用的话就将其节点移除。希望了解的能帮忙说明一下。

 

这篇关于改造一下上次vue的loading插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040352

相关文章

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

Vue3中的动态组件详解

《Vue3中的动态组件详解》本文介绍了Vue3中的动态组件,通过`component:is=动态组件名或组件对象/component`来实现根据条件动态渲染不同的组件,此外,还提到了使用`markRa... 目录vue3动态组件动态组件的基本使用第一种写法第二种写法性能优化解决方法总结Vue3动态组件动态

spring-boot-starter-thymeleaf加载外部html文件方式

《spring-boot-starter-thymeleaf加载外部html文件方式》本文介绍了在SpringMVC中使用Thymeleaf模板引擎加载外部HTML文件的方法,以及在SpringBoo... 目录1.Thymeleaf介绍2.springboot使用thymeleaf2.1.引入spring

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤