求一个组件卸载时的钩子函数,在下一个组件created前执行

  • 其实语义上讲beforeDestroy在下个组件的created之后执行,挺违背人正常思维的。正常一个组件需要被另外一个组件替换时,前一个组件销毁,后一个组件挂载是我们的第一反应。当然组件具有副作用是不被建议的,但其实在爷孙组件/兄弟组件通信,表单数据收集(共享数据,不必收集)等方便带来的便利是巨大的,只要我们节制使用。在构建复杂灵活的规则页面时很有帮助。

  • 我们需要一个组件卸载时的钩子函数,且该函数在下一个组件created之前能够执行,方便组件对产生的副作用进行还原。下一个组件在此情况下能够不受前一个组件副作用的影响。这种方式同时适用于任何交替组件控制同一个东西的情况(store module的挂载/卸载与组件挂载卸载挂钩)。减少了很多麻烦事。

  • 当然有人说使用了Keep-Alive或者其他情况下很难提供这样的钩子函数,且作者也说明了这样会是breaking change。但是Vue给人的感觉就是直观且符合人类正常思维,这个钩子函数的需求也是顺从了直观的感受。难道就没有办法解决这个问题,很失落。。

如果有其他hack的方式能够做到这点也可以,但是没有找到这样的方式