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 相关文章推荐
js 延迟加载 改变JS的位置加快网页加载速度
Dec 11 Javascript
JavaScript模拟实现键盘打字效果
Jun 29 Javascript
浅谈javascript中return语句
Jul 15 Javascript
简单解析JavaScript中的__proto__属性
May 10 Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
Angular.js中angular-ui-router的简单实践
Jul 18 Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
详解vue组件开发脚手架
Jun 15 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
用React Native制作一个简单的游戏引擎
May 27 Javascript
浅谈在不使用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
PHP多例模式介绍
2013/06/24 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
python编码总结(编码类型、格式、转码)
2016/07/01 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
详解python中的hashlib模块的使用
2019/04/22 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
学校办公室主任职责
2013/12/27 职场文书
临床医师专业个人自我评价
2014/01/08 职场文书
安全生产计划书
2014/05/04 职场文书
个人思想政治总结
2015/03/05 职场文书
花田少年史观后感
2015/06/16 职场文书