vue watch普通监听和深度监听实例详解(数组和对象)
下面通过一段代码给大家介绍vue watch的普通监听和深度监听,具体代码如下所示:
var vm=new Vue({ data:{ num:1, obj:{ name:'三儿', age:'21', sex:'女' } }, watch:{ num(val, oldVal){ //普通的watch监听 console.log(“num: “+val, oldVal); }, obj:{ //深度监听,可监听到对象、数组的变化 handler(val, oldVal){ console.log(“obj.name: “+val.name, oldVal.name); }, deep:true } } }) vm.num=2 vm.obj.name='二儿'
下面单独给大家介绍下vue-watch 深度监听
watch:{} 对象,可监听数据,数据发生变化, 处理函数
目的: watch虽可监听,但只是浅监听,只监听数据第一层或者第二层,
何为第二层?
let obj = {name: 'xx', child: {age: 11}};
child之后的值就为第二层或者深层
实现目标: 如果 要监听一个对象中的属性,属性最高也是第二层了,watch可能监听不到,
所有要使用深度监听:
实现代码:
watch: { ' user.phone ' : { handel:function() { //特别注意,不能用箭头函数,箭头函数,this指向全局 处理函数 }, deep: true //深度监听 } }
总结
以上所述是小编给大家介绍的vue watch普通监听和深度监听实例详解(数组和对象),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
vue.js使用watch监听路由变化的方法
watch除了可以监听数据的变化,路由的变化也能被其监听到 效果如下: 具体代码 当路由发生变化后,在watch中写具体的业务逻辑 let vm = new Vue({ el: "#app", data: {}, router, watch: { '$route.path': function (newVal, oldVal) { if (newVal === '/login') { console.log('欢迎进入登录页面'); } if (newVal === '/registe
-
使用watch监听路由变化和watch监听对象的实例
一.watch监听路由变化 解决办法: export default{ data(){ return{} }, watch:{ "$route":"getPath" // 监听事件 }, methods:{ getPath(){ let path = this.$roune.path; //或得当前路径 进行逻辑判断 } } } 二.watch监听对象 例子: <el-select v-model="form.region" placeho
-
Vue数据监听方法watch的使用
watch本身很容易理解, watch负责将视图中的数据与某个函数关联起来 当Vue视图中的数据变化时, 关联的函数会被执行 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>监听方法watch的使用</title> <script src="https://cdn.bootcss.com/
-
vue实现路由监听和参数监听
1.路由携带数据跳转 routerAction(hideDisplays, data) { switch (hideDisplays) { case "pubAccountMenu": this.$router.push({ name: "AppAccountInfo", }); break; //在菜单路由上存储各种需要信息 case "publicDocInfoMenu": //菜单code: publicDocInfoMenu data.i
-
用Vue.js实现监听属性的变化
前言 创建 Vue 实例时,Vue 将遍历 data 的属性,通过 ES5 的 Object.defineProperty 将它们转为 getter/setter,在其内部 Vue 可以追踪依赖.通知变化. const vm = new Vue({ data: {foo: 1} // 'vm.foo' (在内部,同 'this.foo') 是响应的 }) 观察属性变化 Vue 的实例提供了 $watch 方法,用于观察属性变化. const vm = new Vue({ data: {foo:
-
vue watch普通监听和深度监听实例详解(数组和对象)
下面通过一段代码给大家介绍vue watch的普通监听和深度监听,具体代码如下所示: var vm=new Vue({ data:{ num:1, obj:{ name:'三儿', age:'21', sex:'女' } }, watch:{ num(val, oldVal){ //普通的watch监听 console.log("num: "+val, oldVal); }, obj:{ //深度监听,可监听到对象.数组的变化 handler(val, oldVal){ console
-
Android 监听软键盘状态的实例详解
Android 监听软键盘状态的实例详解 近日遇到要检测软键盘是否显示或隐藏的问题,搜了一下网上,最后找到一个很简单的,记录一下. activityRoot是activity的根view,就是xml里面的第一个view,给它设置一个id. final View activityRootView = findViewById(R.id.activityRoot); activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(ne
-
微信小程序 监听手势滑动切换页面实例详解
微信小程序 监听手势滑动切换页面实例详解 1.对应的xml里写上手势开始.滑动.结束的监听: <view class="touch" bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd" ></view> 2.js: var touchDot = 0;//触摸时的原点 var time = 0;// 时
-
android studio按钮监听的5种方法实例详解
1.匿名内部类 public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn1 = fin
-
vue axios数据请求get、post方法及实例详解
我们常用的有get方法以及post方法,下面简单的介绍一下这两种请求方法 vue中使用axios方法我们先安装axios这个方法 npm install --save axios 安装之后采用按需引入的方法,哪个页面需要请求数据就在哪个页面里引入一下. import axios from 'axios' 引入之后我们就可以进行数据请求了,在methods中创建一个方法 methods:{ getInfo(){ let url = "url" axios.get(url).then((r
-
在vue项目中优雅的使用SVG的方法实例详解
1.基础介绍 本文旨在介绍如何在项目中配置和方便的使用svg图标. 本文以vue项目为例,当然在react中的使用原理基本相似. svg图标可以直接通过img标签来使用,也可当做icon来使用. 本文是参考了鑫旭大佬的文章:SVG Sprite技术介绍. 2.配置 安装svg-sprite-loader.通过vue-cli脚手架创建的项目默认情况下会使用 url-loader 对svg进行处理,所以需要处理下: { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, l
-
Vue组件之间的参数传递与方法调用的实例详解
目录 父组件向子组件 子组件调用父组件方法 其它组件间调用 补充: 父组件向子组件 1.父组件向子组件传参:父组件中的子组件标签中增加 :param="param" 子组件中增加 props 接受参数(注意props需要与data同级) props: { param: { type: Object } }, data() { return { ... } }, 2.父组件调用子组件方法:父组件中子组件的标签增加 ref="abc" 例如: <child ref
-
vue实现todolist基本功能以及数据存储功能实例详解
实现todolist功能,具体实现如下: 可以实现对list添加.移除以及状态转变,其中添加功能既可以通过鼠标点击按钮实现,也可以通过回车键按下实现,通过使用v-model对checked的值进行双向绑定来完成状态的改变.在本次实际操作中仍存在一个小问题就是methods中函数调用,在完成数据存储前可以通过this.$options.methods.addFun();进行调用. <div id="app"> <input type="text" v
-
Vue.js 单页面多路由区域操作的实例详解
单页面多路由区域操作 在一个页面中有两个及以上的<router-view>区域,需要通过设置路由的index.js,来操作这些区域的内容 App.vue 中设置: <router-view></router-view> <router-view name="left" style="float: left;width: 50%; height: 300px;background-color: #ccc;"></r
-
Angular中使用$watch监听object属性值的变化(详解)
Angular中的$watch可以监听属性值的变化,然后并做出相应处理. 常见用法: $scope.$watch("person", function(n, o){ //todo something... }) 但是对于一个对象中的某个属性值变化时,$watch似乎不管用了. 示例代码: <body> <div ng-controller="mainCtrl"> <input id="myText" type=&qu
随机推荐
- SQL Server 高性能写入的一些经验总结
- JavaScript中用于四舍五入的Math.round()方法讲解
- Linux下connect超时处理(总结)
- javascript 实现的完全兼容鼠标滚轴缩放图片的代码
- 浅谈Python单向链表的实现
- 用PHP+MySql编写聊天室
- 使用wxpython实现的一个简单图片浏览器实例
- 收集的几个Python小技巧分享
- CentOS 7 搭建ntp时钟服务器的步骤详解
- JQuery的$和其它JS发生冲突的快速解决方法
- jQuery匹配文档链接并添加class的方法
- android调用国家气象局天气预报接口json数据格式解释
- windwos下使用php连接oracle数据库的过程分享
- 最新病毒变种sxs.exe及xeklsk.exe(柯南病毒)查杀方法
- iis应用程序池监控方法实例
- 制做Google Sitemap文件的简单方法与图文教程
- PHP 网站修改默认访问文件的nginx配置
- javascipt:filter过滤介绍及使用
- C#实现读写ini文件类实例
- python3 发送任意文件邮件的实例