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 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
Oct 26 Javascript
完美实现八种js焦点轮播图(下篇)
Apr 20 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
Node.js引入UIBootstrap的方法示例
May 11 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
JS实现判断有效的数独算法示例
Feb 25 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
Dec 29 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 Javascript
React + Threejs + Swiper 实现全景图效果的完整代码
Jun 28 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
python处理数据,存进hive表的方法
2018/07/04 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
python实现串口通信的示例代码
2020/02/10 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
2014年两会学习心得体会
2014/03/10 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
延安红色之旅心得体会
2014/10/07 职场文书