当前位置:首页 > VUE

vue缺省页实现

2026-03-07 23:27:14VUE

Vue 缺省页实现方法

使用条件渲染控制显示

通过 v-ifv-show 指令控制缺省页的显示时机,当数据为空或加载失败时展示缺省页。

<template>
  <div>
    <div v-if="dataList.length > 0">
      <!-- 正常内容 -->
    </div>
    <div v-else class="empty-page">
      <img src="@/assets/empty.png" alt="暂无数据">
      <p>暂无数据</p>
    </div>
  </div>
</template>

封装可复用组件

将缺省页封装为独立组件,通过 props 控制不同状态的显示。

vue缺省页实现

<!-- EmptyState.vue -->
<template>
  <div class="empty-state">
    <img :src="image" :alt="title">
    <h3>{{ title }}</h3>
    <p>{{ description }}</p>
    <button v-if="showButton" @click="$emit('action')">{{ buttonText }}</button>
  </div>
</template>

<script>
export default {
  props: {
    image: String,
    title: String,
    description: String,
    showButton: Boolean,
    buttonText: String
  }
}
</script>

结合路由实现全屏缺省页

在路由层面处理缺省页,适用于无权限或404等情况。

// router.js
{
  path: '/empty',
  component: () => import('@/views/EmptyStateView.vue'),
  meta: { requiresAuth: false }
}

使用第三方UI库

Element UI、Ant Design Vue 等库提供现成的空状态组件。

vue缺省页实现

<template>
  <a-empty description="暂无数据" />
</template>

<script>
import { Empty } from 'ant-design-vue';
export default {
  components: { 'a-empty': Empty }
}
</script>

动态缺省内容

根据不同类型动态显示缺省内容,增强用户体验。

computed: {
  emptyConfig() {
    if (this.error) {
      return {
        image: require('@/assets/error.png'),
        title: '加载失败',
        buttonText: '重试'
      }
    }
    return {
      image: require('@/assets/empty.png'),
      title: '暂无数据',
      buttonText: '刷新'
    }
  }
}

动画效果增强

为缺省页添加过渡动画,提升视觉体验。

.empty-page {
  transition: all 0.3s ease;
}
.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

标签: vue
分享给朋友:

相关文章

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础 Sw…

vue 动画 实现

vue 动画 实现

vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要包括过渡动画和动态动画两类。 使用 <transition> 组件实现基础过渡 通过 Vue 内置的 <transit…

vue diff实现

vue diff实现

Vue Diff 算法实现原理 Vue 的虚拟 DOM Diff 算法(即 patch 过程)是其高效渲染的核心,主要通过对比新旧虚拟节点的差异,最小化 DOM 操作。以下是关键实现要点: 同层级比…

vue实现flbook

vue实现flbook

Vue 实现类似 Flbook 的翻页效果 要实现类似 Flbook 的翻页效果,可以使用 Vue 结合 CSS 动画和 JavaScript 事件处理。以下是实现方法: 安装依赖 需要安装 vue…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue 实现上传

vue 实现上传

Vue 实现文件上传 使用 Vue 实现文件上传可以通过原生 HTML 的 <input type="file"> 或第三方库(如 axios、vue-upload-component)完…