gpt4 book ai didi

vue.js - NUXT 中的 SSR vuex store

转载 作者:行者123 更新时间:2023-12-02 03:23:58 24 4
gpt4 key购买 nike

我正在开发 vue2+nuxt 应用程序,我正在使用 vuex+持久状态包。在其中一个组件中,我根据状态 bool 变量显示带有条件的 div:

<template>
<div class="nav__topbar" v-if="show">
....
</div>
</template>
<script>
export default {
computed: {
show() {
return this.$store.state.navInfo.navInfo
}
}
}
</script>

一切正常 - 如果 this.$store.state.navInfo.navInfo 为真,则显示,否则消失。刷新后它仍然有效。

我唯一无法解决的问题是,当刷新 div 显示部分秒后 boolean 为 false 时。它在让我们说 .2s 后消失,但即使它如此之快,它仍然使页面“跳跃”,因为 .nav__topbar 是 100% 宽度和 20vh 高度。所以有那么一会儿我可以看到这个 div,然后它隐藏起来,所有页面都跳起来,这看起来非常丑陋,我不能忽略它。

有什么办法可以防止这种行为吗?


也许我可以利用 Nuxt 提供的这个 fetch() 或 asyncData 钩子(Hook)?

最佳答案

前几天我遇到了同样的问题,直到我找到 this comment

插件/persistedstate.js

import createPersistedState from 'vuex-persistedstate'
import * as Cookies from 'js-cookie'
import cookie from 'cookie'

export default ({store, req, isDev}) => {
createPersistedState({
key: 'your_key',
paths: ['state1', 'state2',...so_on],
storage: {
getItem: (key) => process.client ? Cookies.getJSON(key) : cookie.parse(req.headers.cookie||'')[key],
setItem: (key, value) => Cookies.set(key, value, { expires: 365, secure: !isDev }),
removeItem: (key) => Cookies.remove(key)
}
})(store)
}

nuxt.config.js

plugins: [
{ src: '~plugins/persistedstate.js' }
]

解决了我的问题,希望也能解决你的问题。我唯一认识到的是该函数现在在服务器和客户端上都被调用。将尝试找出原因。

关于vue.js - NUXT 中的 SSR vuex store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com