加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Vue处事器端渲染nuxt.js初探

发布时间:2019-01-26 11:05:28 所属栏目:建站 来源:佚名
导读:开头照旧来一段空话: 年关快要,给各人拜个从前,愿各人年会都能抽大奖,来年行大运。 空话不多说,直接进正文。 项目情形: 前端vue项目, 必要将新增的几个路由页面做seo处理赏罚。 在调研 插件 prerender-spa-plugin后,发明无法满意 vuex 以及 plugins 等

params.statusCode 可用于指定处事端返回的哀求状态码。

  1. asyncData ({ params, error }) {  
  2. return axios.get(`https://my-api/posts/${params.id}`)  
  3. .then((res) => {  
  4. return { title: res.data.title }  
  5. })  
  6. .catch((e) => {  
  7. error({ statusCode: 404, message: 'Post not found' })  
  8. })  
  9. }  

第三方插件的行使

譬喻:element-ui

必要在 plugins/ 中 添加 element-ui.js

  1. import Vue from 'vue'  
  2. import Element from 'element-ui/lib/element-ui.common'  
  3. import locale from 'element-ui/lib/locale/lang/en'  
  4. export default () => {  
  5. Vue.use(Element, { locale })  
  6. }  

在 uuxt.config.js 中

  1. plugins: [  
  2. "~/plugins/element-ui",  
  3. // {src : '~/plugins/ga.js' , ssr : false} 是否做ssr处理赏罚, false时为在客户端才加载  
  4. ],  

这样全局就可以行使了

留意:

在行使第三方插件时必要留意 插件内部许多处所城市用到window工具,在处事端会报错,以是必要将ssr配置为false

在出产情形中, 有一些插件,在多个页面中引用,这样会造成多次加载打包的征象

以是: 在 build设置项中增进设置

  1. build: {  
  2. vendor:['axios', 'qs'], // 防备多次打包  
  3. }  

page 函数钩子生命周期 以及window 工具

常常会在 第三方组件可能挪用的时辰 碰着window工具报错题目。

  1. asyncData() {  
  2. console.log(window) // 处事端报错  
  3. console.log(this) // undefined  
  4. },  
  5. fetch() {  
  6. console.log(window) // 处事端报错  
  7. },  
  8. created () {  
  9. console.log(window) // undefined  
  10. },  
  11. mounted () {  
  12. console.log(window) // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}  
  13. }  

Vue处事器端渲染nuxt.js初探

css js 文件打包文件夹处理赏罚

在 uuxt.config.js 中,只需设置出产情形中。

  1. build: {  
  2. extractCSS: { allChunks: true }, // css 独立打包 link 的情势加载  
  3. publicPath: '/sample/assets/', //sample/essays 打包的默认路径为 ‘_nuxt’ 可能可以指定cdn 域名  
  4. filenames:{ // css 和 js img 打包时指定文件夹  
  5. app: ({ isDev }) => isDev ? '[name].js' : '[chunkhash].js',  
  6. chunk: ({ isDev }) => isDev ? '[name].js' : '[chunkhash].js',  
  7. css: ({ isDev }) => isDev ? '[name].js' : '[contenthash].css',  
  8. img: ({ isDev }) => isDev ? '[path][name].[ext]' : '[hash:7].[ext]'  
  9. }  
  10. },  

输出 css link 路径: /sample/essays/[contenthash].css

留意: 静态资源文件路径名 不能和页面路由名称沟通 publicPath 默认设置 '/' 无效

陈设

先 npm run build 打包 client文件和 server 文件。

然后 npm runb start 启动处事器。

pm2 打点:

  1. pm2 start npm --name "my-nuxt" -- run start 

陈设时 必要留意 假如是 从其他处所重定向 到 nuxt 情形中的页面是, 必要特殊设置一个 css / js 重定向路由,而且必要留意 header头部信息,防备呈现 css 文件返转头部信息为 Content-Type text/plain。

今朝项目中只运用到这么多,后续项目迁徙时碰着更多的题目会做增补,假如各人碰着过其他的坑点可以在下面评述中总结出来以及办理方案。

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读