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 相关文章推荐
Add Formatted Text to a Word Document
Jun 15 Javascript
Jquery之美中不足小结
Feb 16 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
jQuery实现切换字体大小的方法
Mar 10 Javascript
javascript使用avalon绑定实现checkbox全选
May 06 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
深入理解javascript中concat方法
Dec 12 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
不得不知的ES6小技巧
Jul 28 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
php流量统计功能的实现代码
2012/09/29 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
django 读取图片到页面实例
2020/03/27 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
人力资源专员岗位职责
2014/01/30 职场文书
四年级数学教学反思
2014/02/02 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
小学课外活动总结
2014/07/09 职场文书
Python 如何实现文件自动去重
2021/06/02 Python