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 相关文章推荐
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
浅谈javascript属性onresize
Apr 20 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
May 23 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
Oct 21 Javascript
js实现一个简单的MVVM框架示例
Jan 15 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
r.js来合并压缩css文件的示例
Apr 26 Javascript
JS实现头条新闻的经典轮播图效果示例
Jan 30 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 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生成16位随机数的代码(两种方法)
2014/09/16 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
JS判定是否原生方法
2013/07/22 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
python getpass实现密文实例详解
2019/09/24 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
python双向链表原理与实现方法详解
2019/12/03 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
初学者学习Python好还是Java好
2020/05/26 Python
工业设计专业个人求职信范文
2013/12/28 职场文书
应用英语专业自荐信
2014/01/26 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
委托培训协议书
2014/11/17 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
学校团代会开幕词
2016/03/04 职场文书
合同补充协议书
2016/03/24 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android