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 相关文章推荐
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
Jul 26 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
Oct 22 Javascript
JS跨域代码片段
Aug 30 Javascript
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
jQuery的attr与prop使用介绍
Oct 10 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
Dec 27 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
15分钟深入了解JS继承分类、原理与用法
Jan 19 Javascript
小程序使用wxs解决wxml保留2位小数问题
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+mysql一个名片库程序
2006/10/09 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
Script的加载方法小结
2011/01/12 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
js实现动态时钟
2020/03/12 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
Python语言的面相对象编程方式初步学习
2016/03/12 Python
django模板结构优化的方法
2019/02/28 Python
深入浅析Python中的迭代器
2019/06/04 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
python 常见的反爬虫策略
2020/09/27 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
创业计划书之物流运送
2019/09/17 职场文书