vue性能优化之预渲染prerender-spa-plugin+vue-meta-info解决seo问题

news2024/9/28 5:52:03

单页面应用中,web项目只有一个页面,前端根据路由不同进行组件之间的对应切换,动态的渲染页面内容。这就是客户端渲染,具有减少服务器端压力、响应速度快等优点。但是单页应用在优化用户体验的同时,也给我们带来了一些对SEO不友好,首屏时间过长等问题。因此,预渲染(Prerender)技术应运而生。纯前端就能完成

prerender-spa-plugin 预渲染

1.安装

npm install prerender-spa-plugin --save

2.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({
                    staticDir: path.join(__dirname,'dist'),
                    // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。
                    routes: ['/', '/product','/about'],
                    // 这个很重要,如果没有配置这段,也不会进行预编译
                    renderer: new Renderer({
                        inject: {
                            foo: 'bar'
                        },
                        headless: false,
                        // 在 main.js 中 document.dispatchEvent(new Event('render-event'))
                        renderAfterDocumentEvent: 'render-event'
                    })
                }),
            ],
        };
    }
}

3.main.js

mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
new Vue({
  router,
  store,
  render: h => h(App),
  // 这是关键
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
}).$mount('#app')

4.router.js 中 设置mode: “history”

export default new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    }
  ],
  // 这是关键
  mode: 'history'
})

5.打包

npm run build

6.查看打包之后的文件目录
在这里插入图片描述
可见根据路由生成了不同的文件夹,格式为 xxx/index.html

7.访问网站,查看网页源码
在这里插入图片描述如果能看到网页源代码中有实际的节点,代表预渲染成功

vue-meta-info 设置页面title、关键词和描述

seo管理 vue-meta-info 动态设置meta和title的相关知识
1.安装

npm i -S vue-meta-info

2.main.js里面引入vue-meta-info

import MetaInfo from 'vue-meta-info'
Vue.use(MetaInfo)

这样在组件页面中就可以使用了。

假设你要给users.vue添加title,meta标签
users/index.vue

<template>
...
</template>
  
<script>
export default {
  metaInfo: {
    title: '我是users头', // set a title
    meta: [{             // set meta
      name: 'keyWords',
      content: '我是users关键字'
    },
    {
      name: 'description',
      content: '我是users描述'
    }],
    link: [{ // set link
      rel: 'asstes',
      href: 'https://assets-cdn.github.com/'
    }]
  }
}
</script>

这样再结合prerender-spa-plugin,打包之后,在dist文件夹找到users文件夹下的index.html
打开你会发现就有title和meta的关键字和描述标签了
在这里插入图片描述

如果要在组件内动态使用 metaInfo :

注意:动态设置为:Metainfo() { return { } } 形式,静态设置为:Metainfo: { title: ‘我是users头’ }

export default {
 metaInfo () {
   return {
     title: this.pageName
   }
},
  
data () {
 return {
  pageName: 'loading'
 }
},
  
mounted () {
  setTimeout(() => {
   this.pageName = 'async'
 }, 2000)
 }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/150321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阅读 | 001《人工智能导论》(三)知识应用篇1

文章目录知识应用第9章、专家系统9.1 专家系统概述9.2 推理方法9.3 一个简单的专家系统9.4 非确定性推理9.5 专家系统工具9.6 专家系统的应用9.7 专家系统的局限性9.8 本章小结第10章、计算机视觉10.1 计算机视觉概述10.2 数字图像的类型及机内表示10.3 常用计算机视觉模型和关…

计算机重装系统方法教程

​计算机在使用的过程中出现各种问题也是在所难免的&#xff0c;当计算机出现了一些系统故障问题没有办法解决时&#xff0c;或是计算机使用长了以后运行就会变得越来越慢时&#xff0c;这时大家可以考虑通过电脑重装系统来解决&#xff0c;那么&#xff0c;计算机如何重装系统…

ArcGIS基础实验操作100例--实验71多图层叠加查询

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验71 多图层叠加查询 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

MATLAB——PCM编译码实验

目录MATLAB——PCM编译码一、实验原理1.掌握PCM编码原理和译码原理2. 练习使用Matlab编程实现PCM编码和译码3. 了解失真度的概念&#xff0c;能对译码结果进行失真度分析二、实验原理三、实验要求1、用Matlab产生一模拟信号&#xff0c;如&#xff1a; 或者自己编写一信号&…

“微综艺+虚拟场景”,蓝海创意云利用元宇宙技术撬动流量杠杆

1月1日&#xff0c;抖音微综艺节目“友问必答”2023新年直播盛大开幕&#xff0c;蓝海创意云利用vLive虚拟直播系统为此档节目搭建了专属的“元宇宙问答直播间”&#xff0c;整场直播观看人次突破 30W 人次&#xff0c;最高同时在线人数达 3W 人次&#xff0c;独特的直播形式和…

基于Spring+Mybatis框架的人事管理系统源码+数据库,含视频部署教程

人事管理系统 下载地址&#xff1a;基于SpringMybatis框架的人事管理系统源码数据库 部署说明&#xff1a; 项目启动后&#xff0c;在浏览器中访问地址&#xff1a;http://127.0.0.1:8080/personnel/ 由于很多同学反映部署有问题&#xff0c;所以我录了一个视频来演示一下&…

【Python爬虫项目实战】Python爬虫采集某外包平台数据保存本地

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、开发工具二、环境搭建三、数据来源查询分析四、代码实现1. 发送请求2.数据获取3.解析数据4. 保存数据总结前言 今天给大家介绍的是Python爬虫某外包平台数据…

架构设计---搜索引擎的原理

前言&#xff1a; 搜索引擎的倒排索引&#xff0c;数据的搜索与查找技术是计算机软件的核心算法&#xff0c;这方面已有非常多的技术和实践经验。而对于搜索引擎来说&#xff0c;要面对海量的文档进行快速的内容检索、查询的话&#xff0c;最主要的技术是倒排索引技术。 像百…

从0.5到4.0,OceanBase单机分布式一体化的技术演进|DTCC 2022

2022 年 12 月 14 日~16 日&#xff0c;由 IT168 联合旗下 ITPUB、ChinaUnix 两大技术社区主办的第 13 届中国数据库技术大会&#xff08;DTCC 2022&#xff09;在线上隆重召开。大会以“数据智能 价值创新”为主题&#xff0c;上百位技术领袖齐聚云端&#xff0c;进行多维度、…

信道模型:卫星→地面

这里写目录标题比较C. Loo模型&#xff1a;直射阴影&#xff0c;多径不阴影Corazza模型&#xff1a;直射和多径都阴影Lutz模型&#xff1a;好坏2个状态Rayleigh and Rician 信道生成Shadowed-Rician 直射径 散射径[Secure Transmission in Cognitive Satellite Terrestrial Net…

异常流量发现与分析案例

异常现象 NetInside流量分析系统在某教育平台监测过程中&#xff0c;5月14日发现明显的4次流量高峰&#xff08;其中第1-2次产生时间距离较近&#xff09;&#xff0c;详细出现时间如下图。 由上图分析看到&#xff0c;引起流量高峰的IP地址是58.129.247.149&#xff0c;下图…

数字孪生关键技术及其在电力行业应用场景

近年来&#xff0c;我国高度重视数字经济的发展&#xff0c;产业数字化升级战略正在推进中&#xff0c;引导数字经济与实体经济深度融合&#xff0c;促进经济高质量发展。数字孪生作为一项关键技术和提高效能的重要工具&#xff0c;可以有效发挥其在建模、数据采集、分析预测、…

前端组件库自定义主题切换探索-01-方案借鉴与思路参考

探索原因背景 首先自然是项目有需求&#xff0c;这是必须去做的原因 其次&#xff0c;是我们项目没有直接使用市面上现成的基于element-ui或者ant-design的第三方UI框架&#xff0c;比如avue&#xff0c;而是有着自己的UI组件库 第三&#xff0c;我们的组件库基于ant-design-v…

C++ stack和queque

Stack 一.有关stack介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其只能从容器的一端进行元素的插入、提取或者删除操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并…

u盘格式化后数据能恢复吗?当然可以,5步恢复U盘数据

很多人都知道格式化U盘会清空里面的数据&#xff0c;虽然可以进行备份&#xff0c;但是一般我们都不会轻易格式化自己的U盘。但是遇到一些特殊情况&#xff0c;我们必须格式化U盘。u盘格式化后数据能恢复吗&#xff1f;当然可以。 只要你的原始数据没有被覆盖&#xff0c;没有…

新C++(4):模板

"抱紧你的我,比国王富有" C可复用性高&#xff0c;C引入了模板的概念&#xff0c;后面在此基础上&#xff0c;实现了方便开发的标准模板库STL -----前言 一、初始模板 我们先来看看 下面的代码段; 如果此时又有需求&#xff1a; 交换一个char 类型的变量 &#x…

数据库,计算机网络、操作系统刷题笔记29

数据库&#xff0c;计算机网络、操作系统刷题笔记29 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle…

联合证券|主力加仓电气设备、有色金属等行业

上证指数、深证成指早盘探底上升&#xff0c;午后震动回落&#xff0c;尾盘有所上升&#xff1b;创业板指早盘探底冲高&#xff0c;午后震动回落&#xff1b;科创50指数早盘高开高走&#xff0c;午后震动回落。到收盘&#xff0c;上证指数报3157.64点&#xff0c;涨0.08%&#…

如何在Windows中轻松扩大C盘?

因为C盘是系统盘&#xff0c;所以没有足够的空间会导致电脑变慢&#xff0c;影响程序或游戏的运行。新电脑C盘可能有足够的可用空间&#xff0c;但随着对电脑的使用&#xff0c;应用程序安装的越来越多。即便很多程序安装到D盘&#xff0c;但某些程序仍然会占用C盘的部分空间。…

Linux信号通信之信号

文章目录什么是信号生活中的信号进程的信号Linux信号种类前台进程和后台进程进程对信号的处理策略Linux产生信号的方式系统调用发送信号kill调用raise调用abortalarm通过终端按键产生信号通过软件条件产生信号信号的自定义处理signalsigactionCoredump函数重入可重入函数和不可…