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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
Javascript执行效率全面总结
Nov 04 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
微信小程序 实战小程序实例
Oct 08 Javascript
Express之get,pos请求参数的获取
May 02 Javascript
Web技术实现移动监测的介绍
Sep 18 Javascript
jQuery中使用validate插件校验表单功能
May 24 jQuery
vue实现绑定事件的方法实例代码详解
Jun 20 Javascript
JavaScript实现省市区三级联动
Feb 13 Javascript
JS继承最简单的理解方式
Mar 31 Javascript
jquery插件实现图片悬浮
Apr 16 jQuery
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
destoon官方标签大全
2014/06/20 PHP
php绘制一条弧线的方法
2015/01/24 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
PHP加密解密函数详解
2015/10/28 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
群胜软件Java笔试题
2012/09/29 面试题
运动会领导邀请函
2014/02/05 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
详解jQuery的核心函数和事件处理
2022/02/18 jQuery