美文网首页
Loading插件

Loading插件

作者: 零界梦忆 | 来源:发表于2020-01-19 14:45 被阅读0次
    <!------------------------------------------------------------
      文件名:   ch3-4.html
      第三章:   Vue.extend 用法2
      开发平台: VSCode 1.39.1
      Vue 实战小慕读书中后台 By Sam
    ------------------------------------------------------------->
    <html>
      <head>
        <title>Vue.extend 用法2</title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <style>
          #loading-wrapper {
            position: fixed;
            top: 0;
            left: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.7);
            color: #fff;
          }
        </style>
      </head>
      <body>
        <div id="root">
          <button @click="showLoading">显示Loading</button>
        </div>
        <script>
          const LoadingPlugin = {
            install: (vm) => {
              function Loading(msg) {
                let loadingComponent = Vue.extend({
                  template: '<div id="loading-wrapper">{{msg}}</div>',
                  props: {
                    msg: {
                      type: String,
                      default: msg
                    }
                  }
                });
                let div = document.createElement("div");
                div.setAttribute("id", "loading-wrapper");
                document.body.append(div);
                new loadingComponent().$mount("#loading-wrapper");
                return () => {
                  document.body.removeChild(
                    document.getElementById("loading-wrapper")
                  );
                };
              }
              vm.prototype.$loading = Loading
            }
          };
          Vue.use(LoadingPlugin)
          let vm = new Vue({
            el: "#root",
            data: {},
            methods: {
              showLoading() {
                let hide = this.$loading("正在加载中,请稍后...");
                setTimeout(() => {
                  hide();
                }, 1000);
              }
            }
          });
        </script>
      </body>
    </html>
    

    相关文章

      网友评论

          本文标题:Loading插件

          本文链接:https://www.haomeiwen.com/subject/xuprzctx.html