vue content loader是一款基于vuejs的SVG占位符加载动画组件。它使用SVG作为占位符加载动画,优雅的显示内容加载动画效果。它的特点有:
- 完全可定制:可以更改颜色、速度和大小。
- 创建自己的加载动画:使用在线工具轻松创建自定义加载动画。
- 可以立即使用:组件里已经有很多预设动画可供使用。
- 性能优化:可进行 Tree Shaking 和高度优化的打包。
- 纯 SVG:因此可以在没有任何 JavaScript、Canvas 等的情况下工作。
- 纯函数式组件:组件采用函数式编程风格。
注意:最新版本仅支持vue3.x,Vue2.x 和 Nuxt 2请使用vue-content-loader@^0.2
替代。
使用方法
安装
如果您想使用vue content loaderSVG占位符加载动画组件,首先您需要安装它,命令如下:
npm i vue-content-loader // 或者 yarn add vue-content-loader
使用
示例代码:
<template> <content-loader></content-loader> </template> <script> import { ContentLoader } from 'vue-content-loader' export default { components: { ContentLoader, }, } </script>
内置的 loaders 有:
import { ContentLoader, FacebookLoader, CodeLoader, BulletListLoader, InstagramLoader, ListLoader, } from 'vue-content-loader'
默认情况下,ContentLoader 只显示一个简单的矩形,可以使用它来创建自定义加载器。
<ContentLoader viewBox="0 0 250 110"> <rect x="0" y="0" rx="3" ry="3" width="250" height="10" /> <rect x="20" y="20" rx="3" ry="3" width="220" height="10" /> <rect x="20" y="40" rx="3" ry="3" width="170" height="10" /> <rect x="0" y="60" rx="3" ry="3" width="250" height="10" /> <rect x="20" y="80" rx="3" ry="3" width="200" height="10" /> <rect x="20" y="100" rx="3" ry="3" width="80" height="10" /> </ContentLoader>
你可以使用在线工具来生成自己想要的svg图形。
Props
vue content loaderSVG占位符加载动画组件的可用props如下:
width
: SVG 宽度,可以是数字或字符串,但不包括单位。height
: SVG 高度,可以是数字或字符串,但不包括单位。viewBox
: VG 的 viewBox 属性,一个字符串,格式为'x y width height'
。如果 width 或 height 为 null 或 undefined,则默认值为'0 0 400 130'
。preserveAspectRatio
: SVG 的 preserveAspectRatio 属性,一个字符串,用于指定如何适应视口。speed
: 动画速度。primaryColor
: 背景颜色。secondaryColor
: 高亮颜色。uniqueKey
: 唯一标识符,需要在 SSR 中保持一致。animate
: 是否启用动画,默认为 true。baseUrl
: 基础 URL,如果在 中使用了<base url="/" />
,则需要指定该属性。默认值为空字符串。primaryOpacity
: 背景不透明度(0 = 透明,1 = 不透明),用于解决 Safari 中的问题。secondaryOpacity
:高亮不透明度(0 = 透明,1 = 不透明),用于解决 Safari 中的问题。
: