uniapp小程序利用vuex实现计时器刷新不重置

js

import { setStorageSync, getStorageSync } from '@/common/utils/storage.js';

export default {
	state: {  
	     second:getStorageSync('second')?getStorageSync('second'):100, 
	},  
	getters: {},
	mutations: {
		updateTime(state:object){
			this.timer=setInterval(()=>{
				if(state.second == 0){
					state.second = 100;
					return clearInterval(this.timer)
				}
				state.second--;
				setStorageSync('second',state.second)
			},1000)
		}
	}
}

html

<view class="getCode" @tap="getCode">{{second==100?'获取验证码':`已发送(${second})`}}</view>
computed: {
	...mapState({
		second: state => state.forgetPass.second
	})
},
methods: {
	...mapMutations(['updateTime']),
	getCode(){
		//判断是否重置
		if (this.second == 100) {
			//可在此处添加axios请求
			this.updateTime();
		}
	}
}

思路就是在vuex里面声明一个状态然后存到Storage里面持久化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值