vue3.0清理定时器无效问题
今天朋友问我一个问题 说路由离开后 怎么清除定时器 我理解的就是页面离开了 清掉定时器 然后就给他说 在beforeDestroy生命周期里面清掉就行了 然后他说不行 我郁闷死了 怎么可能呢 然后让他给我截图 他是直接写的一个定时器 没有指定名字 然后我也就无奈了期间 我自己也动手试了试 奇怪的是 我也清理不掉 不管怎么清理 都是不行 这就让我一头雾水了 开始我最先想到的是我vue版本的问题 我当
·
今天朋友问我一个问题 说路由离开后 怎么清除定时器 我理解的就是页面离开了 清掉定时器 然后就给他说 在beforeDestroy生命周期里面清掉就行了 然后他说不行 我郁闷死了 怎么可能呢 然后让他给我截图 他是直接写的一个定时器 没有指定名字 然后我也就无奈了
期间 我自己也动手试了试 奇怪的是 我也清理不掉 不管怎么清理 都是不行 这就让我一头雾水了 开始我最先想到的是我vue版本的问题 我当时用的是vue3.0 所以 我又去扒api 发现vue3.0的beforeDestroy生命周期有所改动 变成了beforeUnmount 唉~ 无奈
同时 vue3.0新增了几个生命周期 生命周期
<script>
import { setup,onMounted,onBeforeUnmount} from "vue"
import { useRouter} from "vue-router"
export default {
name: '',
setup(){
const route = useRouter()
const toLogin =()=>{
route.push("/login")
}
let timer = null
onMounted(()=>{
timer = setInterval(()=>{
console.log(999)
},1000)
})
onBeforeUnmount(()=>{
clearInterval(timer)
})
return {
toLogin
}
},
// methods:{
// toLogin(){
// console.log(this.timer)
// this.$router.push("/login")
// }
// },
// mounted(){
// this.timter = setInterval(()=>{
// console.log(999)
// },1000)
// },
// beforeUnmount() {
// clearInterval(this.timter)
// },
}
更多推荐
已为社区贡献28条内容
所有评论(0)