react-use 创建跟踪状态:添加链接描述
import {useInterval, useBoolean} from 'react-use';
const delay = 1000; // 倒计时间隔
const [startCount, toggleStartCount] = useBoolean(false);
//短信读秒 startCount toggleStartCount
useInterval(
() => {
if (timer === 0) {
setCount(count + 1);
toggleStartCount();
setTimer(60);
} else {
setTimer(timer - 1);
}
},
startCount ? delay : null
);
//startCount toggleStartCount
const sendMessages = async e => {
// 安卓点击穿透
e.preventDefault();
if (startCount) {
return null;
}
const phone = phoneNumber.value.replace(/\s/g, '');
if (phoneNumber.hasError || !/^1[3-9]\d{9}$/.test(phone)) {
return Toast.info('请输入有效的电话号码');
}
try {
await Axios.post(
'https://api-dev.bitorange.cn/api/client/user/sms/send',
{
phone_num: phone,
sms_use: 'register'
}
);
toggleStartCount();
Toast.info('验证码发送成功');
} catch (err) {
if (err && err.message) {
Toast.info(err.message);
} else {
Toast.info('验证码发送失败,请检查输入的号码和网络');
}
}
};
axios 创建http请求:添加链接描述
try {
await Axios.post(
'https://api-dev.bitorange.cn/api/client/user/sms/send',
{
phone_num: phone,
sms_use: 'register'
}
);
toggleStartCount();
Toast.info('验证码发送成功');
} catch (err) {
if (err && err.message) {
Toast.info(err.message);
} else {
Toast.info('验证码发送失败,请检查输入的号码和网络');
}
}
rematch (额外装的插件inner{//直接处理属性}):
rematch 将.xxx(属性) 组件化 通过插件(如inner)来操作属性