前端骨架屏推荐之 Webpack 骨架屏实现

随着用户对页面加载速度和响应速度的要求越来越高,前端骨架屏这种加载中的页面展示方式就逐渐流行起来了。它可以在等待页面加载的过程中,先展示一个简单的页面骨架,让用户有一个快速反馈,减少等待时间的不适感。

本文将介绍一种用 Webpack 实现前端骨架屏的方法,并提供示例代码供学习和实践。

环境准备

在开始实践之前,需要先安装 node.js 环境和 Webpack。

  1. 安装 node.js 以及 npm

可在官网下载安装包,也可以使用 nvm 等工具安装。

  1. 使用 npm 安装 Webpack
--- ------- ------- ----------- ----------

创建骨架屏组件

首先,我们需要创建一个骨架屏组件,例如:

---- -----------------
  ---- ------------------------------
  ---- ----------------------------
  ---- ------------------------------
------

该组件可根据实际项目需要进行改动,例如增加更多的占位符,或者根据实际页面结构进行调整。

用 Webpack 实现骨架屏

下面我们通过一个示例来演示如何用 Webpack 实现骨架屏。

创建 webpack.config.js 文件

首先,需要在项目根目录下创建 webpack.config.js 文件,并引入相关依赖:

----- ---- - ---------------
----- ----------------- - ------------------------------
----- -------------------- - ----------------------------------
----- --------------------- - --------------------------------------

配置入口文件和输出文件

确定入口文件和输出文件路径:

----- ------ - -
  ------ -----------------
  ------- -
    --------- ---------------------
    ----- ----------------------- -------
  -
-

配置 HTMLWebpackPlugin

用于在构建时生成 html 文件,并插入相关的 js 和 css:

-------------- - -
  --- -------------------
    --------- -------------------
    --------- ------------
  ---
  --- -------------------
    --------- ----------------------
    --------- ----------------
    ------- -----
  ---
-

其中 template 属性用于指定模板文件路径,filename 属性用于指定生成的文件名和路径。inject 属性设置为 false,表示生成的文件不自动插入 js 和 css 文件。

配置 SkeletonWebpackPlugin

用于生成骨架屏模板和相关样式:

--------------------
  --- -----------------------
    -------------- -
      ------ -
        ---- -------------------- --------------------------
      -
    --
    --------- -----
    ------ -----
    ------- -
      ----- -------
      ------- -
        - ----- ---- ----------- --------------- --
        - ----- --------- ----------- ---------------- -
      -
    -
  --
-

其中,webpackConfig 属性可以用于配置 Webpack,在此我们指定 entry 入口为 entry-skeleton.js 文件,该文件将用来生成骨架屏。

minimize 属性用于压缩代码,减小骨架屏生成的文件尺寸。

quiet 属性设置为 true,表示生成骨架屏时不输出日志信息。

router 属性用于配置路由(Vue-router、React-router 等),便于区分不同页面的骨架屏。

配置 CSS

------------- - -
  ------ -
    -
      ----- ---------
      ---- -
        ----------------------------
        -------------
        ----------------
      -
    -
  -
-

其中,MiniCssExtractPlugin.loader 用于将 css 抽取成单独文件,css-loader 用于处理 css 文件,postcss-loader 用于对 css 进行后处理。

配置完成

至此,我们已经完成了 Webpack 骨架屏的配置,可以开始构建:

--- --- -----

执行该命令后,Webpack 将自动生成骨架屏模板和样式,以及 js 和 css 文件。

最终效果如下:

总结

前端骨架屏可以在页面加载过程中,提前展示一个骨架页面,有效降低用户的等待时间和不适感。通过 Webpack,我们可以快速、简单地实现前端骨架屏功能,并获得良好的用户反馈。

希望这篇文章对您有所帮助,也欢迎您留下宝贵的建议和意见。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/648d4f0248841e9894b9c2b1


猜你喜欢

  • Material Design 中的字体规范详解

    Material Design 是 Google 推出的一种用户界面设计语言,目的是为了推广设计的统一性和流畅性。在 Material Design 中,字体规范是重要的一部分,因为字体对用户阅读体验...

    1 年前
  • 精通 CSS Reset 提高网页质量的技巧

    在前端开发中,CSS Reset 是一个非常重要的概念。它的作用是把所有的浏览器默认样式全都清除掉,让网页展现出一致的效果。实际上,不同的浏览器对一些 HTML 元素的默认样式有所不同,这常常会导致开...

    1 年前
  • ES11 之 Promise.allSettled():让异步编程更简单

    在前端开发中,异步编程是非常常见的。而 Promise 是异步编程的一种方式,它可以简化异步编程的过程,使代码更加可读、可维护。 ES11(也称为 ECMAScript 2020)新加入了 Promi...

    1 年前
  • 解决 Custom Elements 和 CSS Cascading 的常见问题

    前言 在前端开发中,我们经常需要使用 Custom Elements 和 CSS Cascading 技术来实现自定义组件和样式效果。虽然这些技术在实现各种复杂组件和效果方面非常强大,但也经常出现一些...

    1 年前
  • 如何在 Mocha 中使用 async/await 进行单元测试

    在前端开发中,单元测试旨在确保每个函数和代码块都能如预期般正常工作。Mocha 是一个常用的测试框架,可以让我们方便地编写和运行测试用例。在这篇文章中,我们将讲解如何在 Mocha 中使用 async...

    1 年前
  • RxJS 实现 WebSocket 长连接利器

    WebSocket 是 HTML5 推出的一种新型网络通信协议,它使得浏览器与服务器之间可以进行全双工通信,允许服务端实时向客户端推送信息。RxJS 是 Reactive Extensions 的实现...

    1 年前
  • RESTful API 和 GraphQL 的实际应用案例

    在前端开发中,接口设计的好坏直接影响到软件的质量和用户体验。RESTful API 和 GraphQL 是当今最常用的接口设计方案,它们都有其独特的优点和适用场景。

    1 年前
  • 如何在 LESS 中使用条件语句来处理不同的样式效果

    LESS 是一种 CSS 预编译语言,它为开发者提供了很多便捷的工具和语法,可以更加快捷、高效地编写 CSS 样式。其中,条件语句是一种非常实用的语法,可以根据条件不同生成不同的 CSS 样式,本文将...

    1 年前
  • 运用 ES10 优化 map 和 reduce 的性能方案

    最近的 JavaScript 发展使得我们越来越重视性能。在这篇文章中,我们将探讨如何使用 ES10 优化 map 和 reduce 的性能,让我们的代码更加高效。

    1 年前
  • 基于 Docker 的应用容器安全加固方法

    前言 在现代软件开发中,Docker 容器已经成为了一种非常流行的虚拟化技术,它提供了一个轻量级、跨平台的容器化环境,使得应用程序轻松地在不同的操作系统和服务器上运行。

    1 年前
  • AngularJS SPA 应用在 ie8 下的兼容性问题解决方案

    背景 在现代 web 开发中,单页面应用(SPA)已经非常流行,AngularJS 作为最受欢迎的前端框架之一,在构建 SPA 应用方面有着广泛的应用。然而,许多企业和机构仍然在使用老旧的浏览器,比如...

    1 年前
  • ES6 新特性之字符串模板

    在 ES6 中,一个非常有用的新特性是字符串模板 (Template Strings),也被称为模板字面量 (Template Literals)。这个 新特性让我们在书写字符串时,可以更加方便、直观...

    1 年前
  • 使用 Angular CLI 创建和部署应用的步骤

    Angular 是前端开发中一种非常流行的框架,并且 Angular CLI 作为 Angular 官方提供的工具,使用它可以更方便的创建、测试、构建和部署应用。本文将介绍使用 Angular CLI...

    1 年前
  • 利用 SASS 编写响应式设计

    随着移动设备的流行,越来越多的网站和应用程序需要适应不同的屏幕尺寸和分辨率。响应式设计是一种解决方案,可以使网站在不同设备上呈现出最佳的用户体验。 但是,在实现响应式设计时,我们需要编写大量的 CSS...

    1 年前
  • Node.js API 批量添加数据到 MySQL 数据库通过 Sequelize ORM

    在开发中,我们常常需要往数据库中批量添加数据,如果手动一个一个添加显然是很耗时而且效率低下的。而 Sequelize ORM 是一个非常强大并且方便的 Node.js ORM(Object-Relat...

    1 年前
  • 解决 Hapi 框架在使用 Cookie 时造成的跨域问题

    在使用 Hapi 框架开发前端应用时,可能会遇到使用 Cookie 时跨域问题的情况。这主要是因为浏览器对于不同域名或端口的请求会做出限制。本文将介绍解决跨域问题的方法。

    1 年前
  • ES8 中如何使用 Object.getOwnPropertyNames() 方法获取对象自有属性

    在 JavaScript 中,对象具有自有属性和继承属性。自有属性是直接在该对象上定义的属性,而继承属性则是来自该对象的原型链上。在某些场景中,我们需要获取对象的自有属性。

    1 年前
  • 在 Angular 项目中使用 TypeScript 怎么避免类型断言

    Angular 是一款非常流行的前端框架,它使用 TypeScript 进行开发。当我们在 Angular 项目中使用 TypeScript 时,有时会出现类型不匹配的情况,这时我们可能需要使用类型断...

    1 年前
  • 解决 MongoDB 空间不足问题

    背景 MongoDB 是一个广受欢迎的 NoSQL 数据库管理系统,它的分布式架构、高性能、高可扩展性和易于集成等特性受到了众多 Web 应用开发者的青睐。然而,一旦 MongoDB 中的数据量不断增...

    1 年前
  • ES9 中 String 的新增 API:trimEnd() 和 trimStart()

    在 ES9 中,JavaScript 新增了两个有用的 String API:trimEnd() 和 trimStart()。这两个 API 可以帮助我们更加有效地处理字符串,特别是在字符串处理方面,...

    1 年前

相关推荐

    暂无文章