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 相关文章推荐
JavaScript多线程的实现方法
May 08 Javascript
namespace.js Javascript的命名空间库
Oct 11 Javascript
Jquery中children与find之间的区别详细解析
Nov 29 Javascript
js Calender控件使用详解
Jan 05 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
使用Javascript写的2048小游戏
Nov 25 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
Nov 24 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
Feb 23 Javascript
使用react-router4.0实现重定向和404功能的方法
Aug 28 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
Oct 31 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
antd多选下拉框一行展示的实现方式
Oct 31 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中COOKIES使用示例
2015/07/26 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
JQuery 文本框使用小结
2010/05/22 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
js读取配置文件自写
2014/02/11 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
岗位职责范本
2013/11/23 职场文书
迟到检讨书大全
2014/01/25 职场文书
小学生作文评语集锦
2014/12/25 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript