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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
Oct 11 Javascript
基于jquery打造的百分比动态色彩条插件
Sep 19 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
Sep 08 Javascript
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
js获取文件里面的所有文件名(实例)
Oct 17 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
Jun 19 jQuery
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 Javascript
Vue的双向数据绑定实现原理解析
Feb 17 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
为数据添加append,remove功能
2006/10/03 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
python实现图片处理和特征提取详解
2017/11/13 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
公司财务总监岗位职责
2013/12/14 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
运动会入场词60字
2014/02/15 职场文书
老公保证书范文
2014/04/29 职场文书
行政专员求职信范文
2014/05/03 职场文书
学习方法演讲稿
2014/05/10 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
乌镇导游词
2015/02/02 职场文书
暑期实践个人总结
2015/03/06 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
html粘性页脚的具体使用
2022/01/18 HTML / CSS