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跑马灯代码(自写)
Apr 17 Javascript
JS中的substring和substr函数的区别说明
May 07 Javascript
Javascript核心读书有感之词法结构
Feb 01 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
js实现人才网站职位选择功能的方法
Aug 14 Javascript
jQuery实现的仿select功能代码
Aug 19 Javascript
javascript的正则匹配方法学习
Feb 24 Javascript
Web打印解决方案之证件套打的实现思路
Aug 29 Javascript
JS SetInterval 代码实现页面轮询
Aug 11 Javascript
Javasript设计模式之链式调用详解
Apr 26 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
node.js通过url读取文件
Oct 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图片库imagemagick安装方法
2014/09/23 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
Python连接PostgreSQL数据库的方法
2016/11/28 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
python如何导入依赖包
2020/07/13 Python
护士自我鉴定怎么写
2014/02/07 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
党员个人年度总结
2015/02/14 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
现货白银电话营销话术
2015/05/29 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
python 进阶学习之python装饰器小结
2021/09/04 Python
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js