提示
为了更好地理解这个 Quasar 插件,请前往 样式与标识 暗黑模式 页面。
// quasar.config file
return {
framework: {
config: {
dark: /* look at QuasarConfOptions from the API card */
}
}
}
content_paste
用法
警告
不要手动为 isActive
或 mode
分配值。请使用 set(val)
方法。
在 Vue 文件中
import { useQuasar } from 'quasar'
setup () {
const $q = useQuasar()
// get status
console.log($q.dark.isActive) // true, false
// get configured status
console.log($q.dark.mode) // "auto", true, false
// set status
$q.dark.set(true) // or false or "auto"
// toggle
$q.dark.toggle()
}
content_paste
在 **SSR 构建** 中,你可能想要从你的 /src/App.vue
中设置。
import { useQuasar } from 'quasar'
export default {
setup () {
const $q = useQuasar()
// calling here; equivalent to when component is created
$q.dark.set(true)
}
}
content_paste
在 Vue 文件之外
// Warning! This method will not
// work on SSR builds.
import { Dark } from 'quasar'
// get status
console.log(Dark.isActive)
// get configured status
console.log(Dark.mode) // "auto", true, false
// set status
Dark.set(true) // or false or "auto"
// toggle
Dark.toggle()
content_paste
关于 SSR 的说明
在 SSR 构建中
- 从 'quasar' 中导入
Dark
的使用暗黑模式的方法不会报错,但它不会起作用(不会做任何事)。但是,你可以使用 在 Vue 文件中 的方法,或者使用 配置(推荐)方法。 - 最好避免在 SSR 构建中将暗黑模式设置为 'auto'。因为无法推断客户端的暗黑模式偏好,所以 SSR 始终会以亮模式渲染,然后当客户端接管时,它会切换到暗模式(如果需要)。结果,屏幕会快速闪烁。
监控状态变化
<template>...</template>
<script>
import { useQuasar } from 'quasar'
import { watch } from 'vue'
export default {
setup () {
const $q = useQuasar()
watch(() => $q.dark.isActive, val => {
console.log(val ? 'On dark mode' : 'On light mode')
})
}
}
</script>
content_paste