nuxt 如何使用中间件修改默认首页?

工具类:

import Cookie from 'js-cookie'

export default {
  //获取服务端cookie
  getCookiesInServer:function (req) {
    let service_cookie = {}
    req && req.headers.cookie && req.headers.cookie.split(';').forEach(function (val) {
      let parts = val.split('=')
      service_cookie[parts[0].trim()] = (parts[1] || '').trim()
    })
    return service_cookie
  },
  //获取客户端cookie
  getCookiesInClient:function (key) {
    return Cookie.get(key) ? Cookie.get(key) : ''
  }
}

在中间件中使用:

import getCookie from '@/plugins/cookie'

// 重定向默认页面路由
export default function ({ route, req, store, redirect }) {
  let isNavbar

  if(process.server){
    let cookies = getCookie.getCookiesInServer(req)
    isNavbar = cookies.isNavbar ? cookies.isNavbar : ''
    console.log('在服务端', isNavbar)
  }

  if(process.client){
    isNavbar = getCookie.getCookiesInClient('isNavbar')
    console.log('在客户端', isNavbar)
  }

  if (isNavbar.includes('false')) {
    redirect('/about')
  }
}

在index.vue中使用

export default {
  middleware: 'navbar',
}

理想效果:根据属性不同,打开页面,默认首页不同
现在问题:改变属性后,需要再手动刷新一次,才能改变默认页面

阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题