当前位置: 首页 > news >正文

长春建站方案化妆品商城网站建设

长春建站方案,化妆品商城网站建设,深圳建设工程招标网,专业做互联网招聘的网站有哪些内容vue项目使用watch监听器监听数据变化 1.概述 在开发项目中,有些场景是当用户点击某个按钮后改变某个属性的值,这个值改变时需要触发事件做一些事情。属性值什么时候改变是没法提前判断的,因此需要有个监听的角色,当监听到值改变…

vue项目使用watch监听器监听数据变化

1.概述

在开发项目中,有些场景是当用户点击某个按钮后改变某个属性的值,这个值改变时需要触发事件做一些事情。属性值什么时候改变是没法提前判断的,因此需要有个监听的角色,当监听到值改变后触发事件。

2.watch基本使用方法

watch的基本使用方法就可以满足大部分的监听场景,下面使用具体的例子介绍watch如何使用。
watch基础用法就是当值第一次绑定的时候,不会执行监听函数,只有当值发生改变时才会执行。如果我们需要在最初绑定值的时侯,也执行监听函数,则看后面高级用法。

2.1.把属性当做方法监听

下面监听name属性值的碧昂华,在watch中把它当做一个方法,监听该属性的值。

<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card>
</template><script>
export default {data() {return {name: '123'};},watch: {name(newVal, oldVal) {console.log('newVal', newVal);// 1234console.log('oldVal', oldVal);// 123}}
};
</script><style></style>

2.2.把属性当做对象监听

把要监听的name值看作对象,利用hanler方法来进行监听。

<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card>
</template><script>
export default {data() {return {name: '123'};},watch: {name:{handler(newVal,oldVal){console.log('newVal',newVal); // 1234console.log('oldVal',oldVal); // 123}}}
};
</script><style></style>

3.watch高级用法

3.1.设置是否监听属性初始值

当父组件向子组件动态传值时,子组件props首次获取到父组件传来的默认值时,也需要执行函数,此时就需要将immediate属性设置为true,结合handler方法使用。

  • 当设置immediate属性为true时,无论值是否发生改变,时刻都会监听。
  • 当设置immediate属性为false时,常规用法,只有值发生改变才会监听。
<template><el-card class="box-card"><el-input v-model="name" style="width: 30%;"></el-input></el-card>
</template><script>
export default {data() {return {name: '123'};},watch: {name: {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);},immediate: true}}
};
</script><style></style>

3.2.监听对象内部属性值

前面我们监听的都是一个属性,如果被监听的不是一个属性而是一个对象,那么上面的方式是监听不到对象里面属性值的变化,需要用deep深度监听。

例如下面监听的form是一个对象,里面name是一个属性。普通的方式是监听不到form里面name的变化,使用deep后才可监听到。

<template><el-card class="box-card"><el-input v-model="form.name" style="width: 30%;"></el-input></el-card>
</template><script>
export default {data() {return {form: {name: '123'}};},watch: {form: {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);},// 深度监听,form对象内部name属性变化deep: true}}
};
</script><style></style>

3.3.监听对象中具体的属性

当我们监听对象时使用上面的deep深度监听是可以监听到对象中所有属性值变化,如果我们非常明确只需要监听对象中具体的属性,指定监听的属性后不用deep深度也可以监听到。

<template><el-card class="box-card"><el-input v-model="form.name" style="width: 30%;"></el-input></el-card>
</template><script>
export default {data() {return {form: {name: '123'}};},watch: {// 指定监听对象中具体的属性'form.name': {handler(newVal, oldVal) {console.log('newVal', newVal);console.log('oldVal', oldVal);}}}
};
</script><style></style>

3.4.多层级嵌套用深度监听

如果监听的对象是一个多层级结构,那么使用深度监听可以监听到每一层的数据。
例如下面监听arr1 和 arr2 两个数组里面包含了嵌套层级的对象,使用深度监听。

<template><el-card class="box-card"><el-input v-model="name" @input="inputFn" style="width: 30%;"></el-input></el-card>
</template><script>
export default {data() {return {name: '123',arr1: [{id: 1,sex: 11}],//监听多层嵌套对象arr2: [{id: 2,sex: 22,list: [{id: 3,sex: 33}]}]};},watch: {arr1: {handler(newVal, oldVal) {console.log('newVal1', newVal);console.log('oldVal1', oldVal);},deep: true},arr2: {handler(newVal, oldVal) {console.log('newVal2', newVal);console.log('oldVal2', oldVal);},deep: true}},methods: {inputFn(e) {this.arr1[0].sex = e;this.arr2[0].list[0].sex = e;}}
};
</script><style></style>
http://www.yayakq.cn/news/969853/

相关文章:

  • 东莞网站优化效果如何电商网站前端模板
  • 建站小二wordpress is single
  • 网站备案编号查询优秀的公司网站
  • 广东官方网站建设搜索引擎推广有哪些平台
  • 免费网站安全软件下载寻求一个专业网站制作公司
  • 免费网站建设视频温江网站制作
  • 坪山网站建设流程万网wordpress
  • 金华婺城建设局网站建筑企业招聘网站
  • 汉子由来 外国人做的网站番禺建设网站
  • 广州网站定做北京建设工程交易信息网站
  • 微网站自己可以做么常州网站快速排名优化
  • 电商网站获取流量的方法win10搭建服务器做网站
  • 编程网站项目做哪个比较好北京vi设计
  • asp.net做网站怎么样表白网页制作代码
  • 专注苏州网站建设俄罗斯免费服务器
  • 中文商城响应式html网站模板seo也成搜索引擎优化
  • 东莞企业网站seo网络代运营推广
  • 怎样在网站上做链接做化验的网站
  • 建设网站需要做什么免费 个人网站
  • 一个网站的建站流程从零开始自己做外贸网站和海外网络营销
  • 网站开发证书要求甘肃兰州旅游必去十大景点
  • 企业建站网络公司企业管理系统网站
  • 浙江华临建设集团网站开发公司成本部年终总结
  • 购买域名网站好微信公共平台开发
  • 江苏网站建设电话中国企业信用信息查询系统
  • 企业建设网站网站建设内容介绍
  • 怎样做带音乐的表白网站辽宁建设工程信息网专家入库
  • 建网站的费用是多少怎样做网站卖网站
  • 360网站推广登录做网站dw
  • 广东专业做网站排名哪家好北京广告网站建设