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 attr 设定src中含有&amp;(宏)符号问题的解决方法
Jul 26 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
Mar 06 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 Javascript
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
详解如何用模块化的方式写vuejs
Dec 16 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
Feb 11 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
php获得当前的脚本网址
2007/12/10 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
简述JS控制台的使用
2018/07/15 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
神经网络python源码分享
2017/12/15 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
pymysql模块使用简介与示例
2020/11/17 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
求职简历推荐信范文
2013/12/02 职场文书
品牌宣传方案
2014/03/21 职场文书
交通安全横幅标语
2014/10/07 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
2015年暑期见闻
2015/07/14 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
logback 实现给变量指定默认值
2021/08/30 Java/Android
Java中的Kotlin 内部类原理
2022/06/16 Java/Android