快应用中实现3s页面自动跳转功能同时也可点击直接跳转
思路:3s钟页面自动跳转,那么首先会想到定时器,那么选用setTimeout还是setInterval呢,首先我们要知道两者的区别,setTimeout是规定的时间之后执行一次,类似于一种延迟的效果,而setInterval则是周期性的执行,刷新同步,所以我们应该选择setInterval,然后用快应用中的路由跳转即可
<script>
impoort router from '@system.router';
export default{
private:{
time:3,
timer:null
}
onReady(){
this.timer=setInterval(this.go.bind(this),1000)
}
go(){
if(this.time>0){
this.time--
}else{
clearInterval(this.timer)
router.push({
uri:'/Boot'
})
}}
}
</script>
注意:
- onReady()这个生命周期才开始操作dom结构
- 设置定时器时this会指向window,所以需要用bind把this指向指回要调用的函数上,要不然将会报undefined的错
- 记得清除定时器,要不然会有你如果在时间没到的时候就点击跳转,等到3s之后他还会再跳转一次