nuxt asyncData extendRoutes nuxtServerInit

2023-05-16

材料来源 realworld 开源项目
asyncData 仅支持服务端,页面初始化,组件加载之前,不能this调用
案例
官方

nuxt.config.js

module.exports = {
  router: {
    linkActiveClass: 'active', // nuxt-link选中样式
    extendRoutes (routes, resolve) {
      routes.splice(0) // 清除默认路由 默认路由是根据pages下的文件夹创建的
      routes.push(
        ...[
          {
            path: '/',
            component: resolve(__dirname, 'pages/layout/'),
            children: [
              {
                name: 'home',
                path: '/',
                component: resolve(__dirname, 'pages/home/')
              },
              {
                name: 'settings',
                path: '/settings',
                component: resolve(__dirname, 'pages/settings/')
              }
            ]
          }
        ]
      )
    }
  }
}

store/index.js

// 在服务端渲染期间运行都是同一个实例
// 为了防止数据冲突,务必要把state 定义成一个函数,返回数据对象
// cookieparser 服务端cookie格式化包
const cookieparser = process.server ? require('cookieparser') : undefined
export const state = () => {
  return {
    user: null
  }
}
export const mutations = {
  setUser (state, data) {
    state.user = data
  }
}
export const actions = {
  // nuxtServerInit 服务端渲染自动调用,仅服务端,初始化数据
  nuxtServerInit({commit}, {req}) {
    let user = null
    if (req.headers.cookie) {
      const par =  cookieparser.parse(req.headers.cookie)
      try {
        user = JSON.parse(par.user)
      } catch (error) { 
        console.log('sdsdss+ user', error)
      }
    }
    commit('setUser', user)
  }
}

middleware/middle.js

// 中间键跳转逻辑
export default function({ store, redirect }) {
  console.log('dsdsdsd', store.state.user)
  if (store.state.user) {
    return redirect('/settings')
  }
}

对应vue文件

// 客户端第三方cookie包
<template>
<div>
//exact 路由全匹配。这里只匹配'/'
<nuxt-link class="nav-link" to="/" exact>Home</nuxt-link>
</div>
</template>
const Cookie = process.client ? require('js-cookie') : undefined
export default {
  // 中间键 跳转
  middleware: 'middle', // 对应middleware文件夹下的js名字
  name: 'Home',
  mounted() {
    this.toSave()
  },
  methods: {
    toSave() {
      Cookie.set('user', '3223232332')
    }
  }
}
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nuxt asyncData extendRoutes nuxtServerInit 的相关文章

  • nuxt window is not defined

    报错如下 nuxt window is not defined解决方案1 在nuxt config js 里面添加ssr false plugins span class token punctuation span span class
  • Nuxt.js路由

    路由 路由概述 Nuxt js 依据 pages 目录结构自动生成 vue router 模块的路由配置 要在页面之间切换路由 xff0c 我们建议使用 nuxt link 标签 基础路由 自动生成基础路由规则 情况1 xff1a 访问路径
  • Nuxt.js 视图

    视图 默认模板 定制化默认的 html 模板 xff0c 只需要在应用根目录下创建一个 app html 的文件 默认模板 xff1a span class token doctype span class token punctuatio
  • Nuxt.js整合axios

    整合 axios 默认整合 在构建项目时 xff0c 如果选择axios组件 xff0c nuxt js将自动与axios进行整合 手动整合 步骤1 xff1a package json有axios的版本 34 dependencies 3
  • Nuxt.js查询学生列表案例

    查询所有的班级 xff1a 后端 父工程pom文件 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt project xmlns 61 34 http maven apach
  • Nuxt.js调用asyncData

    lt template gt lt div gt Index username lt div gt lt template gt lt script gt export default name 34 Index 34 async asyn
  • nuxt 获取不到localStorage,使用cookie持久化

    nuxt项目中在store和plugins的js文件里使用localStorage会报错 解决方案 xff1a 1 安装 cookie universal nuxt span class token function npm span i
  • nuxt asyncData extendRoutes nuxtServerInit

    材料来源 realworld 开源项目 asyncData 仅支持服务端 xff0c 页面初始化 xff0c 组件加载之前 xff0c 不能this调用 案例 官方 nuxt config js module span class toke
  • nuxt服务器渲染,获取数据赋值给组件 - nuxtServerInit

    前言 xff1a vue 43 nuxt js 项目中 xff0c 根据IP定位赋值 xff0c 头部可切换城市 xff0c header在layouts下调用 xff0c 首页根据定位接口返回一些数据 async asyncData ct
  • Nuxt.js数据预取

    本文采用的技术框架有 xff1a 后台 xff1a Express 43 MongoDb 前台 xff1a Vue2 js 43 Nuxt js 64 2 9 2 在Nuxt中发送请求有两种方案 xff1a 前后台分离的方案 xff08 数
  • nuxt:在静态模式或者服务端渲染,build.cache:true与build.extractCSS:true不兼容

    设置cache true在build配置 设置extractCSS true在build配置 跑 yarn nuxt generate 第一次它将正常工作并看起来应该 再跑yarn nuxt generate一次 它仍然可以正常工作 返回并
  • nuxt创建项目

    Nuxt js 是一个基于 Vue js 的通用应用框架 通过对客户端 服务端基础架构的抽象组织 Nuxt js 主要关注的是应用的 UI 渲染 我们的目标是创建一个灵活的应用框架 你可以基于它初始化新项目的基础结构代码 或者在已有 Nod
  • npx下载构建nuxt3开发模板失败的解决方案

    在搭建nuxt3项目开发的时候 安装nuxt3开发模板的时候 使用命令 npx nuxi init my app 会出出现一下错误 This is related to npm not being able to find a file 发
  • 搭建和部署nuxt项目

    说在前面的话 vue js开发的SPA是不利于seo的 搜索引擎对它支持的并不是太好 百度根本就不可以在SPA应用的页面抓取数据 这对很看重seo优化的网站来说肯定是不能容忍的 而使用nuxt开发的网站就可以让爬虫爬取 而且它是基于vue
  • 使用Nuxt.js框架开发(SSR)服务端渲染项目

    SSR 服务端渲染的优缺点 优点 1 前端耗时少 首屏加载速度快 因为后端拼接完了html 浏览器只需要直接渲染出来 2 有利于SEO 因为在后端有完整的html页面 所以爬虫更容易爬取获得信息 更有利于seo 3 无需占用客户端资源 即解
  • nuxt.js服务端渲染使用flexible.js和postcss-px2rem实现移动端自适应—淘宝弹性布局方案(750px设计稿)

    在用vue做服务端渲染的时候需要对移动端做适配所以要用到postcss 2rem插件 第一步 首先下载flexible js 可加载阿里的cdn文件 http g tbcdn cn mtb lib flexible 0 3 4 flexib
  • nuxtjs 国际化i18n

    1 设置国际化匹配文字 locales zh json locales en json 英文同理 topbar home 首页 pin 沸点 topic 话题 book 小册 search 搜索 menu home 我的主页 label 标
  • Nuxt脚手架nuxi初始化失败原因&解决方法

    起因 前几天终于把毕业设计的开题报告整完了 有了一点时间干自己的事 于是就想着学学nuxt3 结果发现跟着官方教程敲的第一行命令就出现了问题 npx nuxi init nuxt3 app 这行代码是nuxt的脚手架 会生成一个最简单的模板
  • vue、nuxt的mavon-editor富文本的使用及添加代码块高亮样式、代码块行数、一键复制代码功能

    为啥断更了这么久 就是因为mavon editor富文本框的样式 nuxt项目的seo nuxt项目的优化 nuxt首屏渲染等等等的问题导致这么久没有发文章了 这篇文章先讲vue项目及nuxt项目中使用mavon editor并改变代码块的
  • NuxtJS - 在布局或组件中使用 asyncData 方法

    我如何使用asyncData在布局或组件中 显然被禁止 因为我的侧边栏组件是在默认布局中使用的 所以我需要使用asyncData显示来自后端的数据 如果我使用 Vuex 来获取数据 我不知道如何在每个页面上使用全局来获取数据 我的布局组件注

随机推荐

  • MySQL 8.0安装

    1 安装MySQL 8 0 Server shell gt dnf span class token operator span y install 64 mysql 2 开启服务 shell gt systemctl span class
  • 华为镜像启动报错

    shell gt span class token function rm span span class token operator span etc span class token operator span udev span c
  • ThinkPad T14s 安装Ubuntu22踩坑记

    讲一个我装机历经的一个小故事 首先 xff0c 花个万把块 xff0c 买个心仪的撸码神奇 xff0c 我买的是2022款ThinkPad T14s 官网关注了好久就是不出32G内存版本的 xff0c 无奈只能买一个16G内存版本的 xff
  • STM32F429入门(二十一):SPI协议及SPI读写FLASH

    IIC主要用于通讯速率一般的场合 xff0c 而SPI一般用于较高速的场合 一 SPI协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议 Serial Peripheral Interface xff0c 即串行外围设 备接口 xff0c
  • Dell清除BIOS密码及硬盘锁

    1 获取System Number F2进入BIOS xff0c 点击Unlock出现以下界面 xff0c 记录System Number 2 获取password 访问https bios pw org xff0c 将记录的System
  • 论文阅读:Learning Deep Features for Discriminative Localization(CAM)

    Learning Deep Features for Discriminative Localization 文章目录 Learning Deep Features for Discriminative Localization摘要1 引言
  • 上下文切换

    上下文切换 xff08 有时也称做进程切换或任务切换 xff09 是指 CPU 从一个 进程或线程 切换到另一个进程或线程 进程 xff08 有时候也称做任务 xff09 是指一个 程序运行的 实例 在 Linux 系统中 xff0c 线程
  • CAS服务器搭建

    一 CAS是Central Authentication Service的缩写 xff0c 中央认证服务 xff0c 一种独立开放指令协议 CAS 是 Yale 大学发起的一个开源项目 xff0c 旨在为 Web 应用系统提供一种可靠的单点
  • 如何查linux服务器的带宽占用?哪些进程占用带宽?

    前言 操作系统 xff1a Linux 操作环境 xff1a Centos7 ubuntu linux查看服务器带宽具体方法 一 使用speedtest cli命令查看下载和上传最大流量值 因为命令是python的 xff0c 所以需要先下
  • ESP8266调试方法

    ESP8266在开发的过程中无法进行仿真 xff0c 所以 xff0c 为了排查问题 xff0c 我们只能用别的方法 xff0c 下面一起来看看常用的两种方法 xff1a 添加UART打印和Fatal 查证方法 添加UART打印 对于 ES
  • 二、操作系统进程管理(4)——处理机调度(2)进程调度的时机、切换与过程、方式、评价指标

    3 进程调度的时机 切换与过程 方式 xff08 1 xff09 进程调度 xff08 低级调度 xff09 的时机 xff1a 什么时候需要进程调度 xff1f 主动放弃 xff1a 进程正常终止 运行过程中发生异常而终止 主动阻塞 xf
  • eclipse保存失败/无法保存/字符编码问题/JAVA

    eclipse保存失败 无法保存 字符编码问题 JAVA 在eclipse中单击 保存 按钮时出现如下提示对话内容 xff08 框 xff09 未能完成保存 原因 xff1a 使用 GBK 字符编码时 xff0c 无法映射某些字符 更改编码
  • java运算符(a++和++a)

    提示 xff1a 文章主要说明a 43 43 和 43 43 a系列 xff0c 附带其余信息 a 43 43 和 43 43 a的不同 xff1a 不同点是a 43 43 是先赋值再 43 1 xff0c 而 43 43 a则是先 43
  • 计算统计笔记整理(持更)

    bootstrap方法 基本思想 xff1a 模拟 目的 xff1a 计算 xff08 任意估计的 xff09 标准误差 偏差和置信区间 分类 xff1a 1 参数化bootstrap 分布形式已知 xff0c 或可由样本估计出分布 xff
  • Javascript 分析Javascript事件机制和Settimeout讲解

    线程 JavaScript特点就是单线程 xff0c 理解是 xff0c 同一个时间只能做一件事 那么 xff0c 为什么JavaScript不能有多个线程呢 xff1f 现在我们假设 xff0c JavaScript同时有多个线程 xff
  • 规划人生之一: 嵌入式系统开发or算法开发

    这些天一直为一个问题所烦扰 不知道今后改把精力投入到嵌入式系统如arm dsp等的开发上还是在图像的压缩算法上 由于我们做的是嵌入式系统 在arm开发上还有嵌入式os 所以比较烦杂 而在dsp上还要进行mpeg以及264的开发 不知道那个更
  • vue中点击获取相应元素

    在vue中通过点击事件获取上一个标签 父标签 第一个子标签等元素 以下元素都是以所点击的元素进行查找 e target 获取当前点击的元素 e currentTarget 获取绑定事件的元素 e currentTarget previous
  • http-parser解析http报文详解

    说明 项目里用到力http parser xff0c 在这里简单说明一下其用法吧 下载地址 xff1a https github com joyent http parser 其使用说明很详细 开源用例 开源tcpflow 1 4 4中使用
  • BGP协议介绍

    一 BGP协议概述 BGP用于在不同的自治系统 xff08 AS xff09 之间交换路由信息 当两个AS需要交换路由信息时 xff0c 每个AS都必须指定一个运行BGP的节点 xff0c 来代表AS与其他的AS交换路由信息 通常是路由器来
  • nuxt asyncData extendRoutes nuxtServerInit

    材料来源 realworld 开源项目 asyncData 仅支持服务端 xff0c 页面初始化 xff0c 组件加载之前 xff0c 不能this调用 案例 官方 nuxt config js module span class toke