我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue服务端渲染框架Nuxt的步骤

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue服务端渲染框架Nuxt的步骤

本篇内容介绍了“Vue服务端渲染框架Nuxt的步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Vue因其简单易懂的API、高效的数据绑定和灵活的组件系统,受到很多前端开发人员的青睐。国内很多公司都在使用vue进行项目开发,我们正在使用的简书,便是基于Vue来构建的。

我们知道,SPA前端渲染存在两大痛点:(1)SEO。搜索引擎爬虫难以抓取客户端渲染的页面meta信息和其他SEO相关信息,使网站无法在搜索引擎中被用户搜索到。(2)用户体验。大型webApp打包之后的js会很庞大,于是就有了按模块加载,像require.js一样,异步请求。webpack盛行,就变成了代码分割。即便如此,受制于用户设备,页面初次渲染还是有可能很慢,白屏等待时间太长,对日益挑剔的用户群体来说,无法接受。

因此,对于那些展示宣传型页面,如官网,必须进行服务端渲染(SSR)。

Vue官方SSR文档的配置太过繁琐,需要对node和webpack有相当不错的使用经验,对于一个前端小白而言,官方推荐NUXT。

NUXT是一款基于vue的服务端渲染框架,跟React的NEXT异曲同工。

最近公司在重构项目,为了有利于SEO,需要使用到服务端渲染,在查阅了一番资料后选择了Nuxt.js,Nuxt.js 是一个基于 Vue.js 的通用应用框架,详情可以看官网,这里主要记录下在使用过程中遇到的问题及解决方案。

技术栈:Vue + Vue-Router + Vuex + Element-Ui + Nuxt + Axios

项目构建

Nuxt.js 官方提供了脚手架「 确保安装了npx(npx在NPM版本5.2.0默认安装了)」

npx create-nuxt-app <项目名>  按照提示选择适合自己项目的配置即可

然后 npm run dev。

遇到的问题

一、router自定义

发现现在很多的框架都有一套自己的路由生成规则(基于vue-router)然后在对应的目录下创建目录,即会自己生成对应的路由,如果对url的路径没有要求的这样也是可以的,如果想要自定义路由的话,就需要添加些配置。具体如下:

  extendRoutes (routes, resolve) {
   routes.push({
    name: 'father',   
    path: '/father',  
    component: resolve(__dirname, 'pages/father/index.vue'), 
    children: [{  
     name: 'son',
     path: '/son',
     component: resolve(__dirname, 'pages/son/index.vue')
    },
    {
     name: 'daughter',
     path: '/daughter',
     component: resolve(__dirname, 'pages/daughter/index.vue')
    }]
   })
  }

对应的参考官方Nuxt.js自定义路由

自定义请求头(基于axios请求的base_url修改)

需求描述:公司的有正式环境和特使环境对应不同的服务器,所以需要在请求的时候添加对应的请求头,具体配置可以参考如下代码:

package.json配置:

 "scripts": {
  "dev": "cross-env NODE_ENV=development PORT=3333 nuxt",
  
  "build": "cross-env NODE_ENV=online nuxt build",
  
  "start": "HOST=0.0.0.0 PORT=3333 nuxt start",
  
  "generate": "nuxt generate",
  "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
  "precommit": "npm run lint"
 },

axios.js配置:

  
if (process.env.NODE_ENV === 'test') {
 axios.defaults.baseURL = 'http://test'
} else if(process.env.NODE_ENV === 'online') {
 axios.defaults.baseURL = 'http://online'
} else {
  axios.defaults.baseURL = 'http://127.0.0.1'
}

这里使用的NODE_ENV由于在nuxt.js默认就存在,所以不需要定义这个变量,如果需要声明一个不存在的环境变量,需要在nuxt.config.js里面添加如下配置


env: {
  PATH_TYPE: process.env.PATH_TYPE
}

一定要看备注:要运行上面的示例,你需要运行npm install --save-dev cross-env 安装 cross-env。如果你在非Windows环境下开发,你可以不用安装cross-env,这时需要把 start 脚本中的cross-env去掉。

官方文档:1.主机和端口配置 2.dev属性修改

打包webpack配置

nuxt.js框架默认使用过了一套配置,但是看了编译出来的源码后发现css文件全部在源码里,感觉不是很利于收缩引擎的SEO,所以自定义了打包配置,代码如下:

  optimization: {
   runtimeChunk: {
    name: 'manifest'
   },
   splitChunks: {
    chunks: 'all',
    cacheGroups: {
     libs: {
      name: 'chunk-libs',
      chunks: 'initial',
      priority: -10,
      reuseExistingChunk: false,
      test: /node_modules\/(.*)\.js/
     },
     styles: {
      name: 'chunk-styles',
      test: /\.(scss|css)$/,
      chunks: 'all',
      minChunks: 1,
      reuseExistingChunk: true,
      enforce: true
     }
    }
   }
  },
  extractCSS: true, 

参考文档: 1.Nuxt.js将CSS提取到一个单独的CSS文件 2.构建配置

“Vue服务端渲染框架Nuxt的步骤”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue服务端渲染框架Nuxt的步骤

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

服务器端渲染:解锁 Vue Nuxt.js 的性能潜力

服务器端渲染 (SSR) 是增强 Vue Nuxt.js 应用程序性能的有效方式,因为它允许在服务器上呈现页面并将其作为静态 HTML 发送到客户端。本文将深入探讨 SSR 的工作原理、优点和实施方式,使您能够充分利用其好处。
服务器端渲染:解锁 Vue Nuxt.js 的性能潜力
2024-02-19

服务器端渲染:Vue Nuxt.js 性能提升的秘诀

服务器端渲染 (SSR) 可以显着提升 Vue 应用的性能,Nuxt.js 通过提供无缝的 SSR 支持,让开发者轻松获得这种优势。本文将探讨 Nuxt.js 的 SSR 功能,并通过示例代码展示如何实现它。
服务器端渲染:Vue Nuxt.js 性能提升的秘诀
2024-02-19

Vue组件的服务器端渲染(SSR)实现与优化

Vue组件服务器端渲染(SSR)通过在服务器端预渲染组件来提高页面加载速度,优化SEO和用户参与度。实现涉及安装SSR插件、创建服务器端渲染函数和配置web框架。为了优化,可以采用代码拆分、缓存、HTTP/2和预渲染策略等措施。SSR的好处包括更快的页面加载时间、更好的SEO和更高的用户参与度,但缺点包括服务器开销、对动态内容的限制和复杂性。最佳实践包括仅预渲染静态页面、优化性能、启用HTTP/2、实施渐进式增强并监控性能。
Vue组件的服务器端渲染(SSR)实现与优化
2024-04-02

Vue Nuxt.js 服务器端渲染:现代 Web 开发的强大工具

Vue Nuxt.js 是一种强大的框架,可将 Vue.js 单页面应用程序转换为服务器端渲染的应用程序。它为现代 Web 开发提供了一系列优势,包括提高性能、增强 SEO 和改善用户体验。本文将深入探究 Vue Nuxt.js 服务器端渲染,解释其功能并提供代码示例以演示其强大功能。
Vue Nuxt.js 服务器端渲染:现代 Web 开发的强大工具
2024-02-19

编程热搜

目录