请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 生命周期中destroy的问题

当我学习到轮播图组件的时候有这么一个生命周期beforeDestroy()我想在切换路由的时候,看看beforeDestroy()是否触发了,然而并没有打印console.log('beforeDestroy').我想问的是,路由切换的时候上一个组件是不是还在,还是被销毁了,如果是被销毁了,为什么beforeDestory()没有触发,除了使用 Vue.$destroy有没有其他方法可以触发beforeDestory

```

beforeDestroy() {

   console.log('beforeDestroy')

   this.slider.disable()

   clearTimeout(this.timer)

 },

```

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2018-03-13 02:46:30

没有销毁,因为你外层用 keep-alive 包裹了吧

0 回复 有任何疑惑可以回复我~
  • 提问者 幕木_ #1
    谢谢~是的。。我把keep-alive去掉就可以触发beforeDestory了~但是~加上keep-alive后轮播组件里的beforeDestroy() {
        this.slider.disable()
        clearTimeout(this.timer)
    
     },
    这段代码是不是就没用了。。。。因为有了keep-alive就不会被销毁了。。beforeDestroy不会被触发啊
    回复 有任何疑惑可以回复我~ 2018-03-13 09:14:34
  • ustbhuangyi 回复 提问者 幕木_ #2
    是的,不会触发 destroy 的相关钩子,但会触发 deactivated 这个钩子
    回复 有任何疑惑可以回复我~ 2018-03-13 10:10:42
  • 提问者 幕木_ 回复 ustbhuangyi #3
    回复 ustbhuangyi:好的~我懂了,谢谢
    回复 有任何疑惑可以回复我~ 2018-03-13 10:13:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信