iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue单页面应用做预渲染的方法实例
  • 766
分享到

Vue单页面应用做预渲染的方法实例

2024-04-02 19:04:59 766人浏览 独家记忆
摘要

目录前言Vue-cli2.0版本vue-cli3.0版本总结前言 使用vue-cli打包项目一般为spa项目,众所周知单页面应用不利于SEO,有ssr(服务端渲染)和预渲染两种解决方

前言

使用vue-cli打包项目一般为spa项目,众所周知单页面应用不利于SEO,有ssr(服务端渲染)和预渲染两种解决方案,这里我们只讨论预渲染

vue-cli2.0版本

安装


npm install prerender-spa-plugin --save

webpack.prod.conf.js增加部分代码


const path = require('path')
const PrerenderSPAPlugin = require('prerender-spa-plugin')    // 引入插件
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer

plugins:[
	// 配置PrerenderSPAPlugin
    new PrerenderSPAPlugin({
      // 生成文件的路径,也可以与WEBpakc打包的一致。
      staticDir: path.join(__dirname, '../dist'),
      
      // 对应自己的路由文件,比如index有参数,就需要写成 /index/param1。
      routes: ['/', '/report','/genius','/index/param1'],
      // 一定要写,如果没有配置这段,也不会进行预编译
      renderer: new Renderer({
          inject: {
            foo: 'bar'
          },
          headless: false,
          // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。
          renderAfterDocumentEvent: 'render-event'
      })
    })
]

在main.js中添加


new Vue({
  el: '#pinGCe',
  router,
  store,
  components: { App },
  template: '<App/>',
  // 添加mounted,不然不会执行预编译
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
})

router.js中设置mode: "history"

运行npm run build,看一下生成的 dist 的目录里是不是有每个路由名称对应的文件夹。然后找个 目录里 的 index.html 用IDE打开,看文件内容里是否有该文件应该有的内容。

每一个你所配置得路由都会生成一个文件夹,然后每个文件夹下边都会生成一个index.html

vue-cli3.0版本

3.0的cli看上去简洁多了,去掉了2.0 build和config等目录,那我们怎么去修改webpack的配置呢?

在根目录下创建vue.config.js,进行你的配置。

安装


npm install prerender-spa-plugin --save

vue-config.js中增加


const PrerenderSPAPlugin = require('prerender-spa-plugin');  // 引入插件
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require('path');
module.exports = {
    configureWebpack: config => {
        if (process.env.node_ENV !== 'production') return;
        return {
            plugins: [
                new PrerenderSPAPlugin({
                    // 生成文件的路径,也可以与webpakc打包的一致。
                    // 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。
                    staticDir: path.join(__dirname,'dist'),
                    // 对应自己的路由文件,比如about有参数,就需要写成 /about/param1。
                    routes: ['/', '/product','/about'],
                    // 必须配置不然不会进行预编译
                    renderer: new Renderer({
                        inject: {
                            foo: 'bar'
                        },
                        headless: false,
                        // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。
                        renderAfterDocumentEvent: 'render-event'
                    })
                }),
            ],
        };
    }
}

在main.js中添加


new Vue({
  router,
  store,
  render: h => h(App),
  // 与 vue-config.js的renderAfterDocumentEvent: 'render-event'名字一定要对应上
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
}).$mount('#app')

router.js 中设置mode: “history”

运行npm run build,看一下生成的 dist 的目录里是不是有每个路由名称对应的文件夹。

总结

1.路由的模式最好使用history模式,不使用也可以运行生成文件,但是查看每个index.html文件内容师一样的。

2.在3.0中和2.0中的设置大致是一样的但是极个别的地方一定有注意

在2.0中,设置  staticDir: path.join(__dirname,'../dist')

在3.0中,设置  staticDir: path.join(__dirname,'dist')

如果这两个设置错了,运行npm run build 都会报错。

如果你想设置每个页面的 title 和 meta 信息推荐使用 [vue-meta-info]

到此这篇关于Vue单页面应用做预渲染的文章就介绍到这了,更多相关Vue单页面应用预渲染内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue单页面应用做预渲染的方法实例

本文链接: https://www.lsjlt.com/news/155444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue单页面应用做预渲染的方法实例
    目录前言vue-cli2.0版本vue-cli3.0版本总结前言 使用vue-cli打包项目一般为spa项目,众所周知单页面应用不利于SEO,有ssr(服务端渲染)和预渲染两种解决方...
    99+
    2024-04-02
  • 使用vue渲染页面的教程
    本篇内容介绍了“使用vue渲染页面的教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue渲染页面路径图...
    99+
    2024-04-02
  • mini-vue渲染的实现方法
    本篇内容介绍了“mini-vue渲染的实现方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录前言目标 第二步:总结前言目前的主...
    99+
    2023-06-20
  • VUE单页面应用SEO的方法是什么
    这篇文章主要介绍了VUE单页面应用SEO的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇VUE单页面应用SEO的方法是什么文章都会有所收获,下面我们一起来看看吧。vue-meta-info ...
    99+
    2023-06-27
  • vue-router是如何实现路由跳转和页面渲染的
    Vue-router是Vue.js官方的路由管理工具,支持基于Vue.js构建单页应用(SPA),它提供的路由功能让我们能够通过管理URL中的路径,来控制页面的跳转和展示。本文将着重探讨 Vue-router 的底层实现原理,分析 Vue-...
    99+
    2023-05-14
  • vue怎么实现单页面应用
    本篇内容介绍了“vue怎么实现单页面应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:npm的安装由于新版的node.js已经集成了np...
    99+
    2023-07-04
  • CSS前端页面渲染优化属性will-change的使用方法
    这篇文章给大家分享的是有关CSS前端页面渲染优化属性will-change的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言当触发scroll、resize这类的滚动事件时,被触发的频率非常高,间隔也特...
    99+
    2023-06-08
  • vue构建单页面应用的示例分析
    小编给大家分享一下vue构建单页面应用的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下步骤:1.使用vue-cli创建项目2.使用vue-router实现单页路由3.用vu...
    99+
    2024-04-02
  • vue服务端渲染页面缓存和组件缓存的示例分析
    这篇文章将为大家详细讲解有关vue服务端渲染页面缓存和组件缓存的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue缓存分为页面缓存、组建缓存、接口缓存,这里我主...
    99+
    2024-04-02
  • 微信小程序音乐播放器页面渲染的方法
    本文小编为大家详细介绍“微信小程序音乐播放器页面渲染的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序音乐播放器页面渲染的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。  页面渲染  为了解决这...
    99+
    2023-06-26
  • 浅谈Vue单页面做SEO的四种方案
    目录1.Nuxt 服务端渲染应用部署 (SSR服务器渲染) 优势: 不足:(开发中遇到的坑) 2.Nuxt 静态应用部署 优势:不足: 3.预渲染prerender-spa-plug...
    99+
    2024-04-02
  • vue实现动态表单动态渲染组件的方式(1)
    vue 实现动态表单/动态渲染组件的方式(一),供大家参考,具体内容如下 思路 先写好各个可能会出现的表单或者自定义的组件,引入。此时后端可能会给到一个对象型数组,每个对象有要渲染组...
    99+
    2024-04-02
  • vue实现动态表单动态渲染组件的方式(2)
    本文实例为大家分享了vue实现动态表单动态渲染组件的方式,供大家参考,具体内容如下 思路 先把所有可能出现的表单/组件写在主页面每个表单/组件的slot 属性值要与后端返回的表单/组...
    99+
    2024-04-02
  • 剖析Vue实例:揭开虚拟DOM和渲染机制的神秘面纱
    Vue 实例的概览 Vue 实例是Vue.js应用程序的核心。它包含了数据、方法、生命周期钩子和其他管理应用程序行为的属性。Vue 通过响应式系统监控实例中的数据更改,并在检测到更改时自动更新视图。 虚拟DOM(Virtual DOM)...
    99+
    2024-02-18
    Vue.js, 虚拟DOM, 渲染机制, 响应式系统, diff算法
  • Vue服务端渲染之Web应用首屏耗时最优化方法
    这期内容当中小编将会给大家带来有关Vue服务端渲染之Web应用首屏耗时最优化方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是服务端渲染?服务端渲染的原理是什么?V...
    99+
    2024-04-02
  • Python框架Django中的页面渲染和数据库应用是怎样的
    Python框架Django中的页面渲染和数据库应用是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Django 的环境搭建和创建项目,只是输出了一行字符,你可以对页面进...
    99+
    2023-06-04
  • 提高页面渲染速度:优化回流和重绘的关键方法
    提高页面渲染速度:优化回流和重绘的关键方法,需要具体代码示例 随着网页应用的发展,用户对页面加载速度的要求也越来越高。而页面的渲染速度受到回流和重绘的影响,因此我们需要优化这两个过程来提高页面的渲染速度。本文将介绍一些关键的方法...
    99+
    2024-01-26
    优化 重绘 回流
  • 使用Vite2+Vue3渲染Markdown文档的方法实践
    目录自定义 Vite 插件使用 vite-plugin-markdownImport Front Matter attributesImport compiled HTML (Mod...
    99+
    2024-04-02
  • vue-cli单页到多页应用的示例分析
    这篇文章将为大家详细讲解有关vue-cli单页到多页应用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue-cli到多页应用前言:我有一个cli创建的vue项...
    99+
    2024-04-02
  • vue单页面改造多页面应用的全过程记录
    前言 单页面和多页面的区别这里就不细说了。我司业务适合多页面,许多小应用都是通过iframe整体嵌入的形式。 如果项目过于庞大,就会有很不好的体验问题。拆分多个项目的话,又会有额外的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作