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 相关文章推荐
jquery中eq和get的区别与使用方法
Apr 14 Javascript
JQuery实现用户名无刷新验证的小例子
Mar 22 Javascript
js中parseInt函数浅谈
Jul 31 Javascript
Jquery easyUI 更新行示例
Mar 06 Javascript
jQuery中trigger()方法用法实例
Jan 19 Javascript
js脚本分页代码分享(7种样式)
Aug 19 Javascript
AngularJS入门教程中SQL实例详解
Jul 27 Javascript
微信小程序之拖拽排序(代码分享)
Jan 21 Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
JavaScript oncopy事件用法实例解析
May 13 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实现的九九乘法口诀表简洁版
2014/07/28 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
JS 时间显示效果代码
2009/08/23 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
python del()函数用法
2013/03/24 Python
python学习入门细节知识点
2018/03/29 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
详解python中@的用法
2019/03/27 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python发展史及网络爬虫
2019/06/19 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
网络营销实训总结
2015/08/03 职场文书
小学感恩主题班会
2015/08/12 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers
HttpClient实现表单提交上传文件
2022/08/14 Java/Android