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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 Javascript
jquery使整个div区域可以点击的方法
Jun 24 Javascript
关于JS中prototype的理解
Sep 07 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
基于jQuery实现选取月份插件附源码下载
Dec 28 Javascript
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
微信小程序时间轴实现方法示例
Jan 14 Javascript
vant 中van-list的用法说明
Nov 11 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图片上传存储源码并且可以预览
2011/08/26 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php数组指针操作详解
2017/02/14 PHP
javascript cookies操作集合
2010/04/12 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
Javascript复制实例详解
2016/01/28 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
Vue DevTools调试工具的使用
2017/12/05 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
python中管道用法入门实例
2015/06/04 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
购买一个高级域名:BuyDomains
2018/03/11 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
J2EE面试题
2016/03/14 面试题
村官工作鉴定评语
2014/01/27 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
周年庆促销方案
2014/03/15 职场文书
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS