【vue】如何实现图片预加载

简介: 【vue】如何实现图片预加载

对于一个使用大量图片的web App,图片预加载的使用很有必要了

正文

data


  data(){
    // 预加载
        preloadAudio: {},
        preloadImg1: {},
        preloadImg2: {},
        preloadImg3: {},
        preloadImg4: {},
        },

钩子函数

  mounted() {
    //图片预加载-缓存单词、图片音频
    this.preloadAudio = new Audio();
    this.preloadImg1 = new Image();
    this.preloadImg2 = new Image();
    this.preloadImg3 = new Image();
    this.preloadImg4 = new Image();
  },

methods

/**
     * 图片预处理,只发请求
     * @Date: 2019年11月4日15:26:11
     * @author 苑仁杰
     */
    searchWordInfoByWordIdPre() {
      var vm = this; // 保存原有对象
      //判断是否是最后一个单词
      // console.log(1);
      // console.log(vm.wordIdList);
      vm.$axios.get(swipeLeft + "?reviewFlag=" + vm.reviewFlag).then(res => {
        if (res.data.code === "0000") {
          //储存单词和id
          //将所有图片填充到数组-暂时写死
          vm.wordListPre = [];
          vm.wordListPre.push(res.data.data.wordPicture1);
          vm.wordListPre.push(res.data.data.wordPicture2);
          vm.wordListPre.push(res.data.data.wordPicture3);
          vm.wordListPre.push(res.data.data.wordPicture4);
          vm.wordListPre.push(res.data.data.audio);
          vm.wordListPre.push(res.data.data.word);
          vm.wordListPre.push(res.data.data.id);
          vm.wordIdList.push(res.data.data.id);
          vm.preloadImg();
        }
        //GOTO
        if (res.data.code === "2222") {
          this.$toast("任务已完成,即将跳转单词检测");
          this.isTurnSuccess = true;
        }
      });
    },
 /**
     * 预加载
     * @Date: 2019年11月4日15:26:111
     * @author 苑仁杰
     */
    preloadImg() {
      // 单词资源实例化
      var vm = this;
      vm.preloadImg1.src = vm.wordListPre[0];
      vm.preloadImg2.src = vm.wordListPre[1];
      vm.preloadImg3.src = vm.wordListPre[2];
      vm.preloadImg4.src = vm.wordListPre[3];
      vm.preloadAudio.src = vm.wordListPre[4];
    },

分析

我实现的预处理其实就是在页面初始化的同时请求下一条数据,同时实例化对象,这样下一条数据就可以直接从缓存里拿了。

目录
相关文章
|
18天前
|
JavaScript 前端开发 开发者
vue3+ts配置跨域报错问题解决:> newpro2@0.1.0 serve > vue-cli-service serve ERROR Invalid options in vue.
【6月更文挑战第3天】在 Vue CLI 项目中遇到 "ERROR Invalid options in vue.config.js: ‘server’ is not allowed" 错误是因为尝试在 `vue.config.js` 中使用不被支持的 `server` 选项。正确配置开发服务器(如代理)应使用 `devServer` 对象,例如设置代理到 `http://xxx.com/`: ```javascript module.exports = { devServer: {
30 1
|
4天前
|
前端开发 JavaScript
Vue底层实现原理总结
Vue底层实现原理总结
|
9天前
|
JavaScript 前端开发 测试技术
使用 Vue CLI 脚手架生成 Vue 项目
通过 Vue CLI 创建 Vue 项目可以极大地提高开发效率。它不仅提供了一整套标准化的项目结构,还集成了常用的开发工具和配置,使得开发者可以专注于业务逻辑的实现,而不需要花费大量时间在项目配置上。
71 7
使用 Vue CLI 脚手架生成 Vue 项目
|
7天前
|
JavaScript
|
7天前
|
存储 JavaScript API
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
14 2
|
11天前
|
JavaScript 算法
“Error: error:0308010C:digital envelope routines::unsupported”启动vue项目遇到一个错误【已解决
“Error: error:0308010C:digital envelope routines::unsupported”启动vue项目遇到一个错误【已解决
14 1
|
11天前
|
JavaScript
error Component name “Login“ should always be multi-word vue/multi-word-component-names【已解决】
error Component name “Login“ should always be multi-word vue/multi-word-component-names【已解决】
25 1
|
12天前
|
JavaScript API
【vue实战项目】通用管理系统:信息列表,信息录入
【vue实战项目】通用管理系统:信息列表,信息录入
20 3
|
12天前
|
JavaScript API
【vue实战项目】通用管理系统:信息列表,信息的编辑和删除
【vue实战项目】通用管理系统:信息列表,信息的编辑和删除
26 2
|
12天前
|
JavaScript 前端开发 API
【vue实战项目】通用管理系统:学生列表
【vue实战项目】通用管理系统:学生列表
42 2