首页 > 其他分享 >Vue — v-load封装 loading效果

Vue — v-load封装 loading效果

时间:2024-03-11 19:56:37浏览次数:28  
标签:load el loading name classList binding Vue

<template>
  <div class="app">
    <div class="box" v-load="isLoading">
      <ul>
        <li v-for="(item, index) in list" :key="index">
          {{ item.name }}
        </li>
      </ul>

    </div>

  </div>

</template>

<script>


export default {

  data() {
    return {
      list: [],
      isLoading: true
    }
  },
  created() {
    setTimeout(() => {
      this.list = [
        { name: '1111' },
        { name: '2222' },
        { name: '3333' },
        { name: '4444' }

      ]
      this.isLoading = false
    }, 3000)
  },
  methods: {

  },
  directives: {
    // 通过添加或者移除类名 实现添加移除Load效果
    load: {
      //在这个钩子函数中 设置默认状态
      inserted(el, binding) {
        binding.value ? el.classList.add('load') : el.classList.remove('load')
      },
      //这个函数用来更新类名状态
      update(el, binding) {
        binding.value ? el.classList.add('load') : el.classList.remove('load')
      }
    }
  }
}
</script>

<style>
.box {
  width: 500px;
  height: 500px;
  background-color: #f7d6d6;
  position: relative;
}

/* 1.准备一个类名,封装指令v-load 实现请求loading效果*/
.load::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #000 url('./assets/image/load.gif') no-repeat center;
}
</style>

 

标签:load,el,loading,name,classList,binding,Vue
From: https://www.cnblogs.com/qinlinkun/p/18066917

相关文章

  • 一文告诉你Vue的事件处理
    Vue事件处理使用v-on指令(简写为@)来监听DOM事件,并在事件触发时执行对应的JavaScript。methods承载多是事件函数v-on可以用@替换用法v-on:click="methodName"或@click="methodName"事件处理器的值可以是:内联事件处理器:事件被触发时执行的内联JavaScri......
  • vue3 父子组件间通讯
    1、父组件向子组件传值父组件<fitSteps:stepActive="stepActive"><div>插槽信息</div>      <van-buttontype="primary"@click="FatherClick">下一步</van-button></fitSteps>conststepActive=ref......
  • Vue组件库的选择与实现 - ViewDesign
    随着Web应用的不断进化和发展,前端开发的需求也在日益增加。在这样的背景下,Vue框架以及各种Vue组件库应运而生。本文将探讨如何选择一个高质量的Vue组件库,并通过使用ViewDesign库阐述如何实现高效、优雅的前端架构。前端架构的重要性前端架构的设计对于整个项目的成功至关重要。......
  • Java登陆第三十四天——使用Vite创建工程化的Vue3项目
    VueVue是基于标准HTML、CSS和JavaScript构建的前端框架,可以更高效地开发前端页面。ViteVite是Vue团队开发的项目管理工具。Maven的主要功能引入依赖项目管理使用Maven可以工程化的管理后端代码。npm的主要功能:引入依赖vite的主要功能:项目管理使用npm+vit......
  • Vue学习笔记44--mixin混入
    mixin混入:可以理解为是代码的一种重构复用一个混入对象可以包含任意组件选项(如data、methods、mounted等等)。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。示例一:局部混合示例局部混入就是在单独的vue组件中引入了mixin混入对象 Student.vue......
  • Vue.js 与 ViewDesign:为企业级 Web 应用提供高效可靠的解决方案
    Vue.js与ViewDesign:为企业级Web应用提供高效可靠的解决方案在当今瞬息万变的商业环境中,企业需要高效、稳定且易于维护的Web应用程序来支持其日常运营和业务发展。幸运的是,Vue.js和ViewDesign的强大组合为开发人员提供了构建复杂企业级Web应用程序的完美解决方案。......
  • Vue — .sync修饰符的使用
    .sync修饰符作用:可以实现子组件和父组件数据的双向绑定,简化代码特点:prop属性名,可以自定义,非固定value使用场景:封装弹窗类的基础组件,添加自定义属性 使用true/false控制本质:就是:属性名和@update:属性名 合写<template><divclass="app"><button@click=......
  • vue前端获取/切换麦克风、播放采集音频和采集音量大小完整代码
    1、创建Vue项目在终端运行npminstallelement-uinpminstallrecordrtc2、案例图示 3、代码1、获取麦克风列表if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){varMic=[]//弹框获取麦克风navigator.mediaDevices.getUserMedia({a......
  • Vue — v-model详解
    一、v-model原理原理:v-model本质上是一个语法糖。例如在inpu中,就是value属性和input事件的合写作用:提供数据的双向绑定双向绑定:数据变,视图跟着变;视图变,数据跟着变二、表单类组件封装&v-model简化代码1.表单组件封装的核心思路:(1)父传子:数据从父组件使用prop传递给子组件渲染......
  • JeecgBoot Vue3前端项目性能优化&按需加载方案
    JeecgBootvue3前端项目在3.5.5版本之前,的确存在很严重的性能问题,大家可以参考以下文档进行升级。按需加载改造方法1、全局注册地方去掉2、组件改成异步注册3、用不到的大组件可以删掉【精简项目方案】大组件1、富文本tinyme2、Markdown3、CodeMirror4、地图数据......