vue watch自动检测数据变化实时渲染的方法


Posted in Javascript onJanuary 16, 2018

本文介绍了vue watch自动检测数据变化实时渲染的方法,分享给大家,具体如下:

首先确认 watch是一个对象,一定要当成对象来用。

对象就有键,有值。

键:就是你要监控的那个家伙,比如说$route,这个就是要监控路由的变化。或者是data中的某个变量。
值可以是函数:就是当你监控的家伙变化时,需要执行的函数,这个函数有两个形参,第一个是当前值,第二个是变化后的值。

值也可以是函数名:不过这个函数名要用单引号来包裹。

第三种情况厉害了。

值是包括选项的对象:选项包括有三个。

  1. 第一个handler:其值是一个回调函数。即监听到变化时应该执行的函数。
  2. 第二个是deep:其值是true或false;确认是否深入监听。(一般监听时是不能监听到对象属性值的变化的,数组的值变化可以听到。)
  3. 第三个是immediate:其值是true或false;确认是否以当前的初始值执行handler的函数。

watch实例

vue watch自动检测数据变化实时渲染的方法

上次讲到可以使用this.$set或vm.set来动态的改变,已经渲染在页面上的数据(添加,删除)重新计算重新渲染。

有时候你会需要,动态的改变某个数据或者值,然后根据你改变的值再做出其它的处理操作(如:显示,隐藏,增,删)等,如下面代码例子:

这里举个Tab的例子:

在vue的项目里新建一个Tab的组件页面

<template>
{{index}}
 <div>
   <div @click="showFun(0)">Tab1</div>
   <div @click="showFun(1)">Tab2</div>
   <div @click="showFun(2)">Tab3</div>
 </div>
 <div>
   <div v-if="index == 0">cont1</div>
   <div v-if="index == 1">cont1</div>
   <div v-if="index == 2">cont1</div>
 </div>
</template>
<script>
export default {
 data(){
  return {
    index: 0 // 索引
  }
 },
watch:{ // 实时检测
  index(idx){ //实时监听index的变化
    console.log(idx) //在这里你可以再根据idx的值,做出其它的操作
  }
},
 methods:{
   showFun(idx){
     this.index = idx
   }
 }
}
</script>

watch可以让你自定义一个侦听器,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的

我再举一个搜索的例子:

<template>
 <input v-model="value" /> // 搜索框
</template>
<script>
export default {
 data(){
  return {
    value: '' // 值
  }
 },
 watch:{
   value(val){ // 实时监听数据变化
     this.wat_fun(val)
   }
 }, 
 methods:{
   wat_fun(val){ // 这里可以调用搜索api接口
    console.log(val)
   }
 }
}
</script>

举了两个简单的例子,希望对大家能有所帮助~也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery动画animate方法使用介绍
May 06 Javascript
javascript折半查找详解
Jan 26 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
JS简单循环遍历json数组的方法
Apr 22 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 Javascript
js实现简单的轮播图效果
Dec 13 Javascript
动态加载权限管理模块中的Vue组件
Jan 16 #Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
Jan 15 #Javascript
解析Angular 2+ 样式绑定方式
Jan 15 #Javascript
基于jquery的on和click的区别详解
Jan 15 #jQuery
仿淘宝JSsearch搜索下拉深度用法
Jan 15 #Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 #Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 #Javascript
You might like
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
js微信分享API
2020/10/11 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
python中global与nonlocal比较
2014/11/21 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python列表list排列组合操作示例
2018/12/18 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
50道外企软件测试面试题
2014/08/18 面试题
后进生转化工作制度
2014/01/17 职场文书
校园十大歌手策划书
2014/02/01 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
公务员政审材料
2014/12/23 职场文书
红色经典电影观后感
2015/06/18 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
详解Python中的进程和线程
2021/06/23 Python
nginx日志格式分析和修改
2022/04/28 Servers