vue-cli 构建骨架屏的方法示例


Posted in Javascript onNovember 08, 2018

脚手架不说了,提前搭建好

然后安装 vue-skeleton-webpack-plugin

npm install vue-skeleton-webpack-plugin

创建文件 skeleton.js和skeleton.vue

skeleton.js

import Vue from 'vue'

import Skeleton from './Skeleton.vue'


export default new Vue({

components: {

Skeleton

},

template: '<skeleton />'

})

skeleton.vue

我的skeleton.vue不知为何<style>标签写在外部没有加载进去,故写到<template>内

样式和模板可以自己修改

<template>

<div class="skeleton-wrapper">
<style>
.skeleton {
padding: 10px;
}

.skeleton .skeleton-head,
.skeleton .skeleton-title,
.skeleton .skeleton-content-bottom,
.skeleton .skeleton-content {
background: rgba(194, 207, 214,.5);
background-image: linear-gradient(90deg,rgba(255, 255, 255, 0.15) 25%, transparent 25%);
background-size: 20rem 20rem;
animation: skeleton-stripes 1s linear infinite;
margin: 0 auto 30px;
text-align: center;
color: darkgray;
}

.skeleton-head {
width: 100px;
height: 60px;
float: left;
}

.skeleton-body {
margin-left: 110px;
}

.skeleton-title {
width: 90%;
height: 60px;
line-height: 60px;
}

.skeleton-content {
width: 60%;
height: 40px;
background: rgba(194, 207, 214,.3)!important;
}
.skeleton-content-bottom {
width: 40%;
height: 40px;
margin: 0 auto 30px 20%!important;
background: rgba(194, 207, 214,.3)!important;
}
@keyframes skeleton-stripes {
from {
background-position: 0 0 ;
}
to {
background-position: 20rem 0;
}
}

</style>
<header class="skeleton-header"></header>
<section class="skeleton-block">
<div class="skeleton">
<div class="skeleton-head"></div>
<div class="skeleton-body">
<div class="skeleton-title">加载中</div>
<div class="skeleton-content"></div>
<div class="skeleton-content-bottom"></div>
<div class="skeleton-content"></div>
<div class="skeleton-content-bottom"></div>
<div class="skeleton-content"></div>
<div class="skeleton-content-bottom"></div>
<div class="skeleton-content"></div>
<div class="skeleton-content-bottom"></div>
<div class="skeleton-content"></div>
</div>
</div>
</section>
</div>
</template>

<script>
export default {
name: 'skeleton'
}
</script>

在build 目录下创建 webpack.skeleton.conf.js

'use strict';

const path = require('path')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const nodeExternals = require('webpack-node-externals')

function resolve(dir) {
return path.join(__dirname, dir)
}

module.exports = merge(baseWebpackConfig, {
target: 'node',
devtool: false,
entry: {
//指向自己的skeleton.js路径
app: resolve('../src/renderer/skeleton/skeleton.js')
},
output: Object.assign({}, baseWebpackConfig.output, {
libraryTarget: 'commonjs2'
}),
externals: nodeExternals({
whitelist: /\.css$/
}),
plugins: []
})

大功告成

vue-skeleton-webpack-plugin 可以 使用多个 骨架屏 ,具体的可以查看官网地址: https://github.com/lavas-project/vue-skeleton-webpack-plugin

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
尝试在让script的type属性等于text/html
Jan 15 Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
jquery衣服颜色选取插件效果代码分享
Aug 28 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
用jQuery获取table中行id和td值的实现代码
May 19 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
React-intl 实现多语言的示例代码
Nov 03 Javascript
Vue Prop属性功能与用法实例详解
Feb 23 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
Nov 08 #Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 #Javascript
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 #Javascript
Angular设置别名alias的方法
Nov 08 #Javascript
vue-cli安装使用流程步骤详解
Nov 08 #Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 #Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 #Javascript
You might like
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
axios 处理 302 状态码的解决方法
2018/04/10 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
动态创建类实例代码
2009/10/07 Python
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
店面销售职位的职责
2014/03/09 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书