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源码学习javascript(一)
Dec 27 Javascript
JS画5角星方法介绍
Sep 17 Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
Sep 19 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 Javascript
jQuery 局部div刷新和全局刷新方法总结
Oct 05 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
Nov 29 Javascript
Vue-axios-post数据后端接不到问题解决
Jan 09 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 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获取地址栏信息的代码
2008/10/08 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
详解javascript高级定时器
2015/12/31 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Python selenium文件上传方法汇总
2020/11/19 Python
机器学习python实战之手写数字识别
2017/11/01 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
Python使用贪婪算法解决问题
2019/10/22 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
金融专业推荐信
2013/11/14 职场文书
中层竞聘演讲稿
2014/01/09 职场文书
上级检查欢迎词
2014/01/18 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
抽奖活动主持词
2014/03/31 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
工程部岗位职责范本
2015/04/11 职场文书
不同意离婚上诉状
2015/05/23 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL