vue3使用bootstrap的简单加载遮罩层

之前有使用过bootstrap做过一个简单的加载遮罩层,现把它加入到vue中。

加载遮罩层一般来讲整个app共用一个就可以,因此放到App.vue中,为不影响其它的业务逻辑,放到</template>标签前面

复制代码
<script setup>
import "bootstrap/dist/css/bootstrap.min.css";
import { store } from "./utils/store.js";
</script>
<template>
    ...

  <div class="modal fade" tabindex="-1" :class="{ show: store.isLoading, 'd-block': store.isLoading }">
    <div class="modal-dialog modal-dialog-centered">
      <div class="modal-content" style="border: none; background-color: transparent">
        <div class="spinner-border text-light mx-auto" role="status">
          <span class="visually-hidden">Loading...</span>
        </div>
      </div>
    </div>
  </div>
  <div v-if="store.isLoading" class="modal-backdrop fade show"></div>
</template>
复制代码

新建utils/store.js

import { reactive } from "vue";

export const store = reactive({
  isLoading: false,
  updateLoadingStatue(status) {
    this.isLoading = status;
  },
});

 使用的地方,比如说pages/Home.vue

复制代码
<script setup>
import { store } from "../utils/store.js";

setTimeout(() => {
  store.updateLoadingStatue(true);
}, 2000);

setTimeout(() => {
  store.updateLoadingStatue(false);
}, 4000);
</script>
<template>
  <div class="about">
    <h1>This is home page</h1>
  </div>
</template>
复制代码

  

posted @   carol2014  阅读(473)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示