当前位置:首页 > VUE

vue实现页面骨框架

2026-01-23 03:15:35VUE

Vue 实现页面骨架屏的方法

骨架屏(Skeleton Screen)是一种优化用户体验的技术,在页面数据加载前展示占位内容,避免空白或闪烁。以下是几种 Vue 实现骨架屏的方案:

使用 CSS 或预渲染骨架屏

通过纯 CSS 或静态 HTML 实现骨架屏,适合简单场景。在 Vue 组件的 v-if/v-else 中切换骨架屏和真实内容。

<template>
  <div v-if="loading" class="skeleton">
    <div class="skeleton-item"></div>
    <div class="skeleton-item"></div>
  </div>
  <div v-else>
    <!-- 真实内容 -->
  </div>
</template>

<style>
.skeleton {
  background: #f0f0f0;
}
.skeleton-item {
  height: 20px;
  margin: 10px 0;
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
</style>

使用第三方库

vue-skeleton-webpack-pluginvue-content-loader 提供更灵活的骨架屏生成方式。

vue实现页面骨框架

安装 vue-content-loader

npm install vue-content-loader

示例代码:

<template>
  <content-loader v-if="loading" :speed="2" primaryColor="#f3f3f3" secondaryColor="#ecebeb">
    <rect x="0" y="0" rx="3" ry="3" width="250" height="10" />
    <rect x="0" y="20" rx="3" ry="3" width="200" height="10" />
  </content-loader>
  <div v-else>
    <!-- 真实内容 -->
  </div>
</template>

<script>
import { ContentLoader } from 'vue-content-loader'
export default {
  components: { ContentLoader }
}
</script>

服务端渲染(SSR)集成

vue实现页面骨框架

在 Nuxt.js 等 SSR 框架中,可通过 loading 属性或自定义布局实现骨架屏。

// nuxt.config.js
export default {
  loading: {
    color: '#3B8070',
    height: '2px'
  }
}

动态数据驱动的骨架屏

根据实际内容结构动态生成骨架屏,确保占位与最终布局一致。

// 动态生成骨架屏占位数量
computed: {
  skeletonItems() {
    return Array(this.expectedItemCount).fill(0)
  }
}

实现注意事项

  • 骨架屏的样式应与真实内容布局接近,避免加载后页面跳动。
  • 动画效果(如渐变动画)能提升感知体验,但需控制性能开销。
  • 在移动端需针对不同屏幕尺寸适配骨架屏样式。
  • 对于复杂页面,可分区逐步替换骨架屏(如先头部后列表)。

标签: 框架页面
分享给朋友:

相关文章

vue实现引导页面

vue实现引导页面

vue实现引导页面的方法 使用Vue实现引导页面可以通过多种方式完成,以下是几种常见的方法: 使用第三方库driver.js 安装driver.js库: npm install drive…

vue框架实现资讯

vue框架实现资讯

Vue 框架实现资讯功能 在 Vue 框架中实现资讯功能通常涉及以下几个关键步骤: 数据获取与处理 通过 API 或静态数据获取资讯列表,使用 Vue 的 data 或 setup 函数存储资讯数据…

css制作锁屏页面

css制作锁屏页面

使用CSS制作锁屏页面 锁屏页面通常包含一个背景、时间显示以及可能的解锁按钮或输入框。以下是实现锁屏页面的关键CSS代码和结构。 HTML结构 <!DOCTYPE html> <…

vue怎么实现页面返回

vue怎么实现页面返回

实现页面返回的方法 在Vue中实现页面返回功能可以通过以下几种方式: 使用Vue Router的go方法 this.$router.go(-1) 该方法接受一个整数参数,表示在历史记录中前进或…

vue页面分离的实现

vue页面分离的实现

Vue 页面分离的实现方法 组件化开发 Vue 的核心思想之一是组件化,通过将页面拆分为多个可复用的组件实现分离。每个组件包含独立的模板、逻辑和样式,通过 props 和 events 进行通信。…

vue实现点击页面切换

vue实现点击页面切换

Vue 实现页面切换 在 Vue 中实现页面切换通常可以通过以下几种方式实现,具体选择取决于项目需求和技术栈。 使用 Vue Router 实现页面切换 Vue Router 是 Vue 官方提供…