uni-app watch监听事件使用说明
一、位置
watch 监听事件和 data、onLoad、onShow 等同级
二、具体语法
1 watch: {
2 addOrUpdateSceneDeviceComplete: {
3 handler: function() {
4 if(this.addOrUpdateSceneDeviceComplete == 2){
5 uni.showLoading({
6 title: '处理中...'
7 })
8 }
9 if(this.addOrUpdateSceneDeviceComplete == 1){
10 uni.hideLoading();
11 uni.showToast({
12 title: '添加成功',
13 icon: 'none',
14 duration: 500
15 });
16 setTimeout(() => {
17 // 你要执行的函数
18 uni.navigateBack();
19 }, 1000);
20 }
21 },
22 deep: true,
23 immediate: true
24 }
25 },
三、参数说明
addOrUpdateSceneDeviceComplete:自定义的变量名称,由于我监听的是一个变量,所以这里也需使用变量名称。
handler:当监听到的变量发生变化时,会执行 handler 函数。
deep:进行深度监听。
immediate:如果我们需要在最初绑定值的时候也执行函数,则就需要用到 immediate 属性。
四、举例
我的业务是一个批量添加的操作,过程可能会耗时,所以需要做一个等待操作完成的功能。
所以我写了个变量,初始值为 0,当业务逻辑开始时,将变量设置为 2,操作完成后,变量设置为 1。
这样就可以在监听的时候判断变量如果是 2,那么执行加载中或处理中的提示,而操作完成后变量为 1 时,就停止 loading,提示操作成功等操作。