vue2 自定义全局Loading组件

简介: 主要用到了Vue 的构造器extend 他可以接受一个已有组件也可以自定义组件

视频教vue2封装全局loading组件_哔哩哔哩_bilibili


在components 下面新建一个文件夹loading


loading.js 和 index.vue


index.vue


<template>
  <transition name="animation">
    <div :style="{background:background}" v-if="visable" class="loaidng">
      <div>
        {{text}}
      </div>
    </div>
  </transition>
</template>
<script>
export default {
  data() {
    return {
      visable: false,
      text: "loading...",
      background: "rgba(0,0,0,.3)",
    };
  },
};
</script>
<style>
.animation-enter,
.animation-leave-to {
  opacity: 0;
}
.animation-enter-active,
.animation-leave-active {
  transition: opacity 0.6s;
}
.loaidng {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 20px;
}
</style>


loading.js


import Vue from 'vue'
import loading from './index.vue'
const $app = Vue.extend(loading)
const $loading = new $app().$mount(document.createElement('div'))
document.body.appendChild($loading.$el)
export default {
    install(vm) {
        vm.prototype.$loading = {
            show: (params) => {
                Object.keys(params).forEach(key => {
                    $loading[key] = params[key]
                })
                $loading.visable = true
            },
            hide: () => {
                $loading.visable = false
            }
        }
    }
}


主要用到了Vue 的构造器extend 他可以接受一个已有组件也可以自定义组件


返回一个实例 这个实例需要一个容器 我们创建一个 div


然后挂载到body 下面


Vue.use 接受一个install 函数 他会给你注册一个vue 的放到install的第一个参数


main js


import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import $loading from '@/components/loading/index.js'
Vue.config.productionTip = false
Vue.use($loading)
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
目录
相关文章
|
15天前
|
JavaScript
vue 函数化组件
vue 函数化组件
|
1月前
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
|
6天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
15天前
|
存储 API
vue3中如何动态自定义创建组件并挂载
vue3中如何动态自定义创建组件并挂载
206 90
|
2月前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
97 0
|
2月前
|
JavaScript 开发者
[译] 监听第三方 Vue 组件的生命周期钩子
[译] 监听第三方 Vue 组件的生命周期钩子
|
8天前
|
JavaScript
Vue使用element中table组件实现单选一行
如何在Vue中使用Element UI的table组件实现单选一行的功能。
27 5
Vue使用element中table组件实现单选一行
|
10天前
|
JavaScript
Vue2.0、Vue3.0分别使用v-model封装组件[Vue必会]
本文介绍了在Vue 2和Vue 3中如何使用`v-model`来实现组件间的双向数据绑定,包括在Vue 2中使用`value`和`input`事件,以及在Vue 3中使用`modelValue`和`update:modelValue`事件的方法。
54 22
|
5天前
|
JavaScript
vue 函数化组件
vue 函数化组件
|
7天前
|
JavaScript 前端开发 Java
vue-day03 组件基础
文章介绍了Vue.js中组件的基础概念、注册格式、命名方式、全局与局部注册的区别、prop属性的详细使用以及通过prop向子组件传递数据的方法,并提供了计数器和博文小组件的实例。
下一篇
无影云桌面