javascript - 如何为 vue3 main div #app 提供动态类?

标签 javascript html vue.js vuejs3

我正在尝试为我的 vue3 应用程序的主 div 提供一个动态类。

当我使用下面的命令创建应用程序时,它会创建一个主 div 标记,其 id 为 app。我可以使用 css 更改样式,但由于页面中没有它,我无法动态更改类。

创建应用的代码

const app = createApp(App)
app.use(store)
app.use(router)
app.mount('#app')

我想做什么

<div id="app" :class="myClass"></div>

最佳答案

您可以添加代表您的类的属性,然后使用 watch 使用 document.querySelector('#app').classList = [val] 更新您的根元素,我做了以下示例说明一个真实的工作示例,即模式从暗变为亮,反之亦然,我添加了名为 mode 的属性,并使用按钮单击事件对其进行更改,然后我观察它以更新根元素类:

const {
  createApp
} = Vue;
const App = {
  data() {
    return {
      mode: 'is-light'
    }
  },
  watch: {
    mode(val) {
      document.querySelector('#app').classList = [val]
    }
  }
}
const app = createApp(App)
app.mount('#app')
#app {
  padding: 12px;
  border-radius: 4px
}

.is-dark {
  background: #454545;
  color: white
}

.is-light {
  background: #f9f9f9;
  color: #222
}

button {
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
  padding: 10px;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  color: #fff;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background: transparent;
  background: #4545ee
}
<script src="https://unpkg.com/vue@3.0.0-rc.11/dist/vue.global.prod.js"></script>

<div id="app" class="is-dark">

  <button @click="mode= 'is-dark'" class="is-dark">
Dark
</button>

  <button @click="mode= 'is-light'" class="is-light">
Light
</button>
  <p>
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Corrupti quidem aspernatur provident fugit impedit esse itaque iusto iure voluptatem eaque?
  </p>

</div>

关于javascript - 如何为 vue3 main div #app 提供动态类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64146121/

相关文章:

javascript - 如何通过 Angular 翻译将翻译值存储在全局变量中

javascript - 如何使用 javascript 或 jquery 爬取 DOM,仅查看直系 parent ,而不查看叔叔/阿姨?

javascript - 如何通过指定条件访问 javascript 对象

html - 将鼠标悬停在链接上时,Bootstrap 导航会将内容推送到下方

vue.js - 使用 VueJS 将数据从 child 发送到 parent

javascript - vue js的数字输入组件

javascript - 从特定 div 过滤并执行脚本

javascript - 将 Javascript 变量发布到 PHP 文档

html - 输入标签的名称属性可以是一个整数吗?

vue.js - 如何在调用完成之前停止渲染我的 vue 组件