webpack 加载动态图片

更新日期: 2019-11-19阅读: 2.7k标签: 图片

webpack 加载动态图片

所谓动态图片指的是接口返回的图片地址,这里的地址指的是本地的图片地址,而非网络图片的url。本地有一个 image 文件夹,存放需要用到的图片。按照接口返回的图片地址比对去加载。webpack加载图片首先想到的是 file-loader 或者 url-loader  


加载图片的配置

首先安装file-loader  

npm install file-loader --save-dev

增加webpack配置,详细文档请参考 file-loader

  ...
  module: {
    rules: [
      {
        test: /\.(png|gif|svg|jpg)$/,
        use: ["file-loader"]
      }
    ]
  }
  ...


webpack 加载本地图片

webpack将一切web资源视为模块,其中就包含图片,
webpack支持commonjs,ES6的模块规范,于是我们可以使用require,以及基于ES6规范的 import() 来加载图片
这两种方式有啥区别呢
require 
输入的是被输出的值的拷贝。也就是说,一旦输出一个值,模块内部的变化就影响不到这个值。这点与 ES6 import
模块化有重大差异 跟 sea.js 的执行结果一致,也是在 require 的时候才去加载模块文件,加载完再接着执行。

我们可以这样使用

const lodash = require('lodash')

还有一个 commonjs异步加载 require.ensure 已经被下文的 import()方法 取代了。

import()方法 
ES2015 loader 规范实现了用于动态加载的import()方法,
这个功能可以实现按需加载我们的代码,并且使用了promise式的回调,获取加载的包。

从上我们可以看出 import是异步加载,我们可以这样使用

  const module = await import('lodash');
  // 或者
  import('lodash').then((module) =>{

  })


两种方法发现的问题

require 
返回的文件不在上述 image 文件夹时候就回报模块找不到的错误。import()方法 
异步加载,实测图片没显示

解决办法

  const file = require.context('../../image', false);
  const keys = file.keys()

keys会返回 image 里面已存在的图片路径的数组,我们只要判断接口返回的图片地址在本地图片里面再去加载
从而避免模块找不到的问题。

原文地址 dynamic-import-image


链接: https://fly63.com/article/detial/6922

原生Js对文件类型的判断,判断文件是图片,视频等格式

在我们开发中,会遇到这样的场景:1.服务器返回Json数据,根据数据类型来显示是图片还是视频。2.前端上传文件,需要指定文件类型才能上传到服务器。这时候就需要使用Js来判断对应文件的类型

前端图片懒加载的实现,采用Lazy Load 图片延迟加载提高用户体验

对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。这样子对于页面加载性能上会有很大的提升,也提高了用户体验。

web前端图片加载优化,从图片模糊到清晰的实现过程

在网页图片显示的时候,会发现许多网站采用了先模糊,然后在慢慢清晰的过程,这样的加载用户体验是比较好的,那么如何实现呐?默认加载2张图片,一张缩略图,一张原图,当打开网页的时候默认只显示缩略图

lazysizes.js使用方法_实现图片懒加载、延迟加载的js插件

当你的网站使用了大量图片时候,如果一次性全部加载,那么会严重影响网站的速度。通过lazysizes.js插件就能很好解决这个问题,它可以实现图片的延迟加载【懒加载】

js实现图片局部放大效果

图片局部放大效果结合的知识点主要是DOM的操作,以及事件的应用,所以首先要对DOM的操作有一定了解,其次能对事件的应用有一定的累积。

网站图片优化的重要性与技巧方案

网站图片优化技巧:1、图片名包括关键词,2、Alt标签包括关键词,3、图片周边文本包括关键词,4、GLF和JPGE图画优化,5、在图片链接中运用锚文本关键字

css实现不定宽高的图片img居中裁剪_类似微信朋友圈图片效果

前端需要显示矩形的缩略图,接口返回的图片尺寸大小不一,宽高不相等,需要前端来处理并显示成正方形,类似微信朋友圈图片的效果。那么使用纯css该如何实现不定宽高的图片居中裁剪呢?

原生js 生成海报图_利用canvas合成图片的实现方法

目前浏览器对html5的支持越来越好,我们现在不用服务器端,直接在前端利用canvas就可以进行图片的合成了。下面就介绍下如何通过原生js 来生成海报图

网页中默认图片的几种解决方式

现在网页中图片随处可见,但避免不了有时会出现图片资源失败的情况,这里的alt属性是为了当图片加载失败时告诉用户图片信息的 ,能不能美化一下呢?下面给出几种方式

h5移动端禁止长按图片保存

在移动端访问H5页面的时候,长按图片就会把图片保存起来,为了能够让用户体验更好一些,我们需要长按的时候也不保存图片。那该如何实现呢?下面给出3种解决方案。使用 pointer-events:none、全局属性、加一层遮罩层

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!