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 相关文章推荐
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 Javascript
js输出列表实现代码
Sep 12 Javascript
JS 实现Json查询的方法实例
Apr 12 Javascript
jQuery异步验证用户名是否存在示例代码
May 21 Javascript
解决JS请求服务器gbk文件乱码的问题
Oct 16 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
Vue双向绑定实现原理与方法详解
May 07 Javascript
Vue router安装及使用方法解析
Dec 02 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
动态加载权限管理模块中的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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
php中time()和mktime()方法的区别
2013/09/28 PHP
php创建session的方法实例详解
2015/01/27 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
php可变长参数处理函数详解
2017/02/22 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
Prototype使用指南之ajax
2007/01/10 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
Python实现在线音乐播放器
2017/03/03 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
个人委托书范本
2014/09/13 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
Java设计模式之代理模式
2022/04/22 Java/Android