vue进行图片的预加载watch用法实例讲解


Posted in Javascript onFebruary 07, 2018

watch应用场景

我想信图片预加载大家肯定都有接触过,当图片量大的时候,为了保证页面图片都加载出来的时候,我们才把主页面给显示出来,再进行一些ajax请求,或者逻辑操作

那此时你用computed对这种监听一个数据然后进行一系列逻辑操作和ajax请求,那watch再适合不过了,如果用computed的话那你连实现都实现不了,只有用watch监听

<template>
 <div v-show=show>
  <img src="https://img.alicdn.com/simba/img/TB14sYVQXXXXXc1XXXXSutbFXXX.jpg" alt="">
  <img src="//img.alicdn.com/tfs/TB1iZ6EQXXXXXcsXFXXXXXXXXXX-520-280.jpg_q90_.webp" alt="">
  <img src="https://img.alicdn.com/simba/img/TB1C0dOPXXXXXarapXXSutbFXXX.jpg" alt="">
  <img src="//img.alicdn.com/tfs/TB1iZ6EQXXXXXcsXFXXXXXXXXXX-520-280.jpg_q90_.webp" alt="">
 </div>
</template>
<script>
 export default {
  mounted () {
   var _this = this
   let imgs = document.querySelectorAll('img')
   console.log(imgs)
   Array.from(imgs).forEach((item)=>{
    let img = new Image()
    img.onload = ()=>{
     this.count++
    }
    img.src=item.getAttribute('src')
   })
  },
  data () {
   return {
    count : 0,
    show : false
   }
  },
  watch : {
   count (val,oldval) {
    if(val == 4){
     this.show = true
     alert("加载完毕")
     //然后可以对后台发送一些ajax操作
    }
   }
  }
 }
</script>

我们可以发现发四张图片都加载完毕的时候页面才显示出来

根据完方有一句话说的很重要的一句

虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的 watcher 。这是为什么 Vue 提供一个更通用的方法通过 watch 选项,来响应数据的变化。当你想要在数据变化响应时,执行异步操作或开销较大的操作,这是很有用的。

基于这个官方的理解再总结我个人的整体理解。给出computed和watch的总结,记住这几点的总结,在做项目的时候想想这些总结,选择你的应用方法

computed:

监听多个数据或者一个数据来维护返回一个状态值 ,只要其中一个或多个数据发生了变化,则会从新计算整个函数体,从新返回状态值

watch:

只有一个一个监听据,只要这个数据发生变化,就会在返回两个参数,第一个是当前的值,第二个是变化前的值,每当变化的时候,则会触发函数体的里的逻辑行为,来进逻辑后续操作

以上这篇vue进行图片的预加载watch用法实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
multiSteps 基于Jquery的多步骤滑动切换插件
Jul 22 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
实测jquery data()如何存值
Aug 18 Javascript
JS.getTextContent(element,preformatted)使用介绍
Sep 21 Javascript
jQuery中:file选择器用法实例
Jan 04 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
vue请求数据的三种方式
Mar 04 Javascript
Python机器学习之决策树和随机森林
Jul 15 Javascript
Angular浏览器插件Batarang介绍及使用
Feb 07 #Javascript
详解JS数值Number类型
Feb 07 #Javascript
vue几个常用跨域处理方式介绍
Feb 07 #Javascript
vue项目中axios使用详解
Feb 07 #Javascript
vue-cli webpack2项目打包优化分享
Feb 07 #Javascript
浅谈es6中export和export default的作用及区别
Feb 07 #Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 #Javascript
You might like
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
Jquery读取URL参数小例子
2013/08/30 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
在Python中调用ggplot的三种方法
2015/04/08 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
查看keras的默认backend实现方式
2020/06/19 Python
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
五一手机促销方案
2014/03/08 职场文书
推荐信模板
2014/05/09 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
撤诉状格式范本
2015/05/19 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers