vue3与elementui封装一个便捷Loading

针对您的问题,我将为您详细讲解如何在Vue3项目中结合ElementUI进行Loading样式封装。

首先,我们需要明确Vue3与ElementUI的相关依赖。在创建Vue3项目的时候,我们需要安装Vue3及其相关依赖:

npm install vue@next
npm install @vue/cli@next -g

而ElementUI的安装则需要使用以下命令:

npm install element-plus@next

安装完成后,我们需要在Vue3识别ElementUI。在main.js文件中添加以下代码:

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

添加完成后,我们接下来会进行封装Loading组件。

首先,在components文件夹下创建一个Loading文件夹,并在该文件夹下创建一个Loading.vue组件文件。

在Loading.vue组件文件中,我们需要引入ElementUI组件和样式。然后在template中添加一个el-popover元素作为Loading遮罩层。在el-popover内部添加一个el-spinner元素作为Loading样式。对于该组件的其他细节配置,可以访问ElementUI的文档进行参考。

<template>
  <div>
    <el-popover
      v-model="visible"
      placement="top"
      width="100%"
      height="100%"
      trigger="manual"
      :popper-class="['custom-loading', popperClass]"
    >
      <div class="loading-wrapper" v-loading="visible">
        <el-spinner size="medium" :type="spinnerType" />
      </div>    
    </el-popover>
  </div>
</template>

<script>
import { defineComponent } from 'vue'

export default defineComponent({
  name: 'CustomLoading',
  props: {
    visible: {
      type: Boolean,
      required: true
    },
    spinnerType: {
      type: String,
      default: 'spinner'
    },
    popperClass: {
      type: String,
      default: ''
    }
  },
})
</script>

<style scoped>
.custom-loading {
  background-color: transparent;
}
.loading-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
</style>

接下来,在我们的Loading.vue组件中,我们需要使用props接收父组件传递进来的visible、spinnerType、popperClass三个参数。这样,我们就能把Loading组件嵌套到其他组件中,使用这三个参数来控制Loading的显示和隐藏。

最后,在任何需要调用Loading的组件中,我们只需要引入Loading.vue组件,然后使用以下代码调用:

<template>
  <div>
    <CustomLoading :visible="loadingVisible" />
  </div>
</template>

<script>
import { defineComponent } from 'vue'
import CustomLoading from '@/components/Loading/Loading.vue'

export default defineComponent({
  name: 'ExampleComponent',
  components: {
    CustomLoading
  },
  data() {
    return {
      loadingVisible: false
    }
  },
  methods: {
    fetchData() {
      this.loadingVisible = true
      // AJAX请求或其他操作
      this.loadingVisible = false
    }
  }
})
</script>

在上面的示例代码中,我们在data中初始化了loadingVisible为false,然后在fetchData方法中进行AJAX请求时,把loadingVisible赋值为true,实现Loading显示;而在请求完成后,我们再次把loadingVisible赋值为false,Loading就会自动隐藏。

以上就是在Vue3项目中结合ElementUI封装一个便捷Loading的完整攻略,希望可以对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3与elementui封装一个便捷Loading - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue表格组件Vxe-table使用技巧总结

    Vue表格组件Vxe-table使用技巧总结 简介 Vxe-table是一款基于Vue.js的表格组件,提供了强大的分页、排序、编辑、导入导出等功能,可以快速应用于数据管理系统等场景。 本文将总结Vxe-table的常见使用技巧,包括数据渲染、插槽、操作按钮、事件监听等,帮助快速上手Vxe-table的使用。 安装 可以通过以下命令来安装Vxe-table:…

    Vue 2023年5月29日
    00
  • 详解Vue3 中的计算属性及侦听器

    详解Vue3 中的计算属性及侦听器 计算属性 计算属性是Vue中一种非常常见的属性类型,可以根据其他数据的变化而自动更新。在Vue3中,计算属性的写法有所变化,需要使用computed方法来定义。 <template> <div> <p>商品价格: {{ price }}</p> <p>打折后价格:…

    Vue 2023年5月28日
    00
  • 浅析vue 函数配置项watch及函数 $watch 源码分享

    浅析 Vue 函数配置项 watch 及函数 $watch 在 Vue.js 中,watch 是一个非常重要的选项。它可以监听数据的变化,从而触发相应的逻辑。本文将从两个方面来介绍 watch:函数配置项 watch 和函数 $watch 的源码分享。 函数配置项 watch watch 是一个对象,它的属性是要监听的数据的名称,值是一个对象或函数。如果值是…

    Vue 2023年5月29日
    00
  • Vue.js 表单校验插件

    Vue.js表单校验插件简介Vue.js表单校验插件是一款常用于Vue.js的插件,可以帮助开发者轻松地在Vue.js应用程序中实现表单校验功能。该插件提供了丰富的校验规则和语法,可以非常方便地满足各种表单校验需求。 安装Vue.js表单校验插件在使用Vue.js表单校验插件前,需要先安装并引入该插件。可以通过npm安装和引入该插件。示例代码如下: # 安装…

    Vue 2023年5月27日
    00
  • vue3使用vis绘制甘特图制作timeline可拖动时间轴及时间轴中文化(推荐)

    下面我会详细讲解使用Vue3和vis库绘制甘特图制作timeline可拖动时间轴及时间轴中文化的攻略。 1. 安装vis库 vis库是一个用于数据可视化的JavaScript库,可以使用它创建各种类型的图表和视图。在Vue3项目中使用vis库,可以通过以下命令进行安装: npm install vis 2. 创建Vue3组件 接下来创建一个Vue3组件,用于…

    Vue 2023年5月29日
    00
  • Vue js 的生命周期(看了就懂)(推荐)

    Vue.js的生命周期 Vue.js 的生命周期是指从 Vue 实例创建、运行到销毁的整个过程,主要包括以下几个阶段: 创建阶段(Initialization): beforeCreate:实例刚在内存中创建出来,但还未初始化 data、methods、computed、watcher 等属性和对象,因此无法访问 data、methods、computed、…

    Vue 2023年5月29日
    00
  • Vue如何下载本地静态资源static文件夹

    当我们使用Vue.js开发项目时,我们常常需要在页面上引入一些本地的静态资源,如图片、字体等等。Vue提供了一个非常简单的方法来加载这些静态资源,那就是使用静态资源文件夹(static folder)。 下面是如何下载并使用Vue的静态资源文件夹的完整攻略(包含两条示例说明): 1. 创建静态资源文件夹 首先,在Vue项目的根目录下创建一个名为“static…

    Vue 2023年5月28日
    00
  • Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)

    实现Vue按照创建时间和当前时间显示操作的方法可以使用moment.js库。该库可以帮助格式化日期和时间,并提供许多快捷选项。 以下是实现这一功能的完整攻略: 步骤1: 安装moment.js npm install moment –save 步骤2: 在Vue组件中导入moment.js库 import moment from ‘moment’; 步骤3…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部