当前位置: 首页 > 知识库问答 >
问题:

vue.js - Nuxt+Pinia导航状态栏选中,怎么在渲染前就进行修改?

柯宜年
2023-07-17

storeHeader

export const useHeader = defineStore('header', {      state: () => ({             dark: false      }),})

Header组件

<template>  <header :class="[style['header'] , { [style['dark']] : dark}]">    ...........  </header></template><script lang="ts" setup>// 状态管理const storeHeader = useHeader()// 暗黑状态const { dark } = storeToRefs(storeHeader)</script>

index.vue

<script lang="ts" setup>// 状态管理const storeHeader = useHeader()// 暗黑状态const { dark } = storeToRefs(storeHeader)// 顶部关闭暗黑dark.value = false</script>

detail.vue

<script lang="ts" setup>// 状态管理const storeHeader = useHeader()// 暗黑状态const { dark } = storeToRefs(storeHeader)// 顶部开启暗黑dark.value = true</script>

现在的情况是我从index进入detail页面,页面会执行dark.value = true开启顶部暗黑

但是在detail页面F5刷新后则不会,需要将dark.value = true放在onMounted中或则延时执行,这种就会出现页面加载完后再载入class,页面就会闪一下,相当于动态添加了class

有没有办法在服务器渲染前就修改dark.value = true

共有1个答案

金子平
2023-07-17

用asyncData方法:

<script lang="ts">import { useHeader } from '~/store/header'export default {  async asyncData() {    const storeHeader = useHeader()    storeHeader.dark = true  },  // 其他代码...}</script>

用fetch方法:

<script lang="ts">import { useHeader } from '~/store/header'export default {  fetch() {    const storeHeader = useHeader()    storeHeader.dark = true  },}</script>
 类似资料:
  • 我想把状态栏的颜色设置为白色,把wifi和电池等图标设置为黑色。我怎么能这样做?。我更喜欢通过使用来完成此操作

  • 本文向大家介绍vue导航栏部分的动态渲染实例,包括了vue导航栏部分的动态渲染实例的使用技巧和注意事项,需要的朋友参考一下 根据公司项目的需求,使用的是element-ui的nav-menu组件实现动态渲染左侧导航条的功能,这里我只写到了四级菜单。 代码部分: 数据部分: 注意:因为含有childs的目录是没有路由的,所以可以把它的value值设为空。 效果展示: 这样我们就可以在其他页面引入该组

  • 但是像App Store里一样透明模糊但是有背景色,问题是导航控制器的背景色不像正常的那样在状态栏下。 我的代码: 编辑:我有一个自定义类和视图控制器嵌入在一个 Swift 3,Xcode 8.0 beta 5。

  • 上述代码在开发阶段,pc 和 移动端模拟器中访问,数据请求正常且渲染成功; 部署服务器后,移动端真机没有发起请求,其他访问方式正常。 有无大佬遇到过或知道怎么解决? 目标站点(未备案) http://114.132.79.6/

  • 我正在将我的应用程序迁移到iOS 7。为了处理状态栏问题,我添加了以下代码 这在正常情况下工作正常。如果我正在更改方向(应用程序仅支持横向方向)或显示任何视图控制器并取消模型视图控制器,则我的视图控制器对齐方式将更改。状态栏再次与我的视图控制器重叠。这段代码根本不起作用。请指导我解决此状态栏问题。 案例2:这就是我展示视图控制器的方式 裁判: 提前谢谢。

  • 我的应用程序中有一个视图控制器,它在情节提要中拖动了一个导航栏。它在iOS 6中运行良好,但在iOS 7中看起来是这样的: 状态栏和导航栏不应相互碰撞。我在堆栈溢出上看到了很多这样的问题,但它们对我没有多大帮助。 有些问题说我应该使用这个“self.edgesForExtendedLayout=UIRectEdgeNone”;但它不起作用。有人说,我应该删除导航栏并将其嵌入导航控制器中,但由于我的