Vue JS 2:在 beforeCreate 之后停止生命周期 v-ifbeforeRouteEnter

问题描述

有没有办法在beforeCreate方法中停止渲染和执行created()和mounted()?只需在组件上调用 $destroy() 就会在创建后触发。

vue js lifecycle

解决方法

没有。还有其他方法可以防止组件渲染

v-if

在父级中使用 v-if 进行条件渲染。

<child v-if="shouldRender"></child>
data: () => ({
  shouldRender: false
})

beforeRouteEnter

如果组件是路由器页面,您可以使用 beforeRouteEnter 导航守卫阻止它被创建。

beforeRouteEnter (to,from,next) {
  if (something) {
    // Don't render the component,go somewhere else
    next({ path: '/somewhere' });  
  }
}