vue.js - 在 vueJS 中使用生命周期钩子(Hook)将类添加到主体

标签 vue.js vuejs2

我使用 beforeCreatebeforeDestroy Hook 将类添加到正文。在某些情况下我需要添加类,在某些情况下则不需要。

所以我在每个需要此功能的组件中都有这样的代码:

  beforeCreate() {
    document.body.classList.add('has-background')
  },

  beforeDestroy() {
    document.body.classList.remove('has-background')
  }

问题是,如果我从一个路由导航到另一个路由,例如从 A 组件导航到 B 组件,则首先执行 B 组件的 beforeCreate ,然后执行 beforeDestroy A 组件的一部分,它删除了 has-background 类。

如何解决这个问题?

最佳答案

尝试使用nextTick()

beforeCreate() {
    this.$nextTick().then(() => document.body.classList.add('has-background'))
},

编辑:

我还建议使用created()而不是beforeCreated()。但要实现最佳行为,最好使用 mounted()

关于vue.js - 在 vueJS 中使用生命周期钩子(Hook)将类添加到主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50747885/

相关文章:

javascript - "watch"Vuex模块有可能吗?

javascript - Vue : when to use @keyup. native in input 元素

vue.js - 根据路由参数 vuejs 加载组件/模板

javascript - Nativescript Google map - 更改折线颜色

javascript - 使用下拉选择数据Vue js

javascript - 添加新路由时出现错误,路由配置中需要路径

javascript - 在vue js中创建treeview - 树的深度未知 - 修改DOM

javascript - 从 Vuejs 中的 localStorage 中删除值

javascript - 从 vue-cli 3 : Adding script tags to App. vue 将 Vuetify 添加到项目模板会破坏应用程序吗?

vue.js - VueJS : How to retrieve information from a table with checkboxes