博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多页面的骨架屏插件实现
阅读量:6705 次
发布时间:2019-06-25

本文共 1220 字,大约阅读时间需要 4 分钟。

一、前言

上一篇介绍了单一路由下的骨架屏插件实现。但在真实的产品中,其他页面也是要有各自的骨架屏的。

二、多路由骨架屏的原理

从上篇文章,可以知道骨架屏其实就是在js没有加载完成之前,在id为root的div里写一些动画代码,让用户不要看到一篇空白。

那多路由的骨架屏是怎样实现的呢? 我们都知道,css有个display属性可以用来显示隐藏一些DOM节点。而javascript中window.location.pathname和window.location.hash可以获取到当前路由的名称和hash值,既然我们可以知道当前的路由情况,所以我们可以配合css的display属性,实现不同路由之间的骨架屏切换。

(1)编写不同路由的骨架屏代码

以下是3个路由的骨架屏代码,他们的display属性一开始都为none。

复制代码

(2)编写js代码,用来控制上面骨架屏的显示隐藏

复制代码

(3)结合上一篇文章的骨架屏插件代码如下:

const HtmlWebpackPlugin = require('html-webpack-plugin');class SkeletonPlugin {  apply (compiler) {    compiler.hooks.compilation.tap('SkeletonPlugin', (compilation) => {      HtmlWebpackPlugin.getHooks(compilation).beforeEmit.tapAsync(        'SkeletonPlugin',        (htmlData, cb) => {          htmlData.html = htmlData.html.replace('
',`
`); cb(null, htmlData) } ) }); }}module.exports = SkeletonPlugin;复制代码

其实原理很简单,相信很多同学都可以明白。在这里我就不多说了。谢谢

转载地址:http://sddlo.baihongyu.com/

你可能感兴趣的文章
android-android获取navigationview 上的控件id
查看>>
向Android社区贡献代码过程详解
查看>>
现代软件工程讲义 2 开发技术 - 效能分析
查看>>
重磅!美图技术团队发布开源 Ethereum DPoS 实现
查看>>
可能是最好用的安卓系统,MIUI是怎么研发的?今晚直播!
查看>>
“房间里的大象”暴露AI巨坑,AI视觉系统被夸嘘过头了?
查看>>
别把每一餐,都吃成了快餐
查看>>
睡觉还能睡得高科技?没错,它能让你从此走向健康睡眠的道路!
查看>>
再跨界!华为联袂设计先锋RICOSTRU,诠释科技新美学
查看>>
51Talk CFO赖佑明2019年1月1日退休 联席CFO徐珉接任
查看>>
微软牵手Apache Kafka,第一个将其引入云端生产环境
查看>>
北京地铁新机场线列车亮相调试 设计时速160公里/小时
查看>>
react-router browserHistory刷新页面404问题解决
查看>>
你知道 koa 中间件执行原理吗?
查看>>
Redis 中的事件循环
查看>>
css布局基础总结
查看>>
Koa源码解析
查看>>
webpack系列之一总览
查看>>
乌龙事件之chrome页面部分白屏
查看>>
FP 视角下的领域驱动设计
查看>>