Vue SSR 开发SEO动态网站快速入门(SSR精髓)

在当今数字化时代,技术人员越来越注重如何利用先进的技术和最佳实践来构建高性能的网站。本文将介绍如何利用 Vue 框架的 SSR(服务器端渲染)功能,结合 SEO 优化,打造具有竞争力的网站。

Vue SSR 的优势

Vue SSR 可以显著提高网站的性能和用户体验。通过在服务器端渲染页面,网站加载速度得以优化,并且在搜索引擎中更易于索引和排名。

数据预取与 SEO 优化

利用 Vue 的 preFetch 钩子,在服务器端预先获取数据,加速页面加载速度并提高 SEO 效果。利用Quasar 提供的Meta插件合理设置页面的标题、描述等元数据,有助于提高网站在搜索结果中的曝光度。

关键示例代码

vue 复制代码
<template>
  <q-page class="flex flex-center">
      <q-field prefix="这是服务端渲染出来的数据:" standout>
        <q-markup-table>
          <q-tr>
            <q-td>省份:{{ data.province }}</q-td>
          </q-tr>
          <q-tr>
            <q-td>城市:{{ data.city }}</q-td>
          </q-tr>
        </q-markup-table>
      </q-field>
  </q-page>
</template>

<script setup>
import {api} from "boot/axios";
import {useSsrStore} from "stores/ssr-store";
import {storeToRefs} from "pinia";
import {useMeta} from "quasar";
// 1. 数据预加载到 store 里
defineOptions({
  // 数据预加载, 开启SSR模式下,该函数只有在服务端或者客户端执行一次
  preFetch ({ redirect, ssrContext, store }){
    if (ssrContext) {
      // 服务端将数据预先加载到 ssrStore 中
      const ssrStore = useSsrStore(store)
      // 服务端使用异步方式,实现多个数据并发获取
      new Promise(async (resolve) => {
        const result = await api.get('/rest/position')
        console.log('在服务端获取的数据:', result.data)
        // 装入数据到store
        ssrStore.setData(result.data)
        resolve()
      })
      // 其它数据获取...
    }
  }
})

// 该 store 到这里已经有数据了
const ssrStore =  useSsrStore()
const { data } = storeToRefs(ssrStore)

// 2. 修改网页的标题,关键字等
const metaData = {
  title: 'quasar ssr 例子',
  meta: {
    description: {name: 'description', content: '这是seo的描述...'},
    keywords: {name: 'keywords', content: 'quasar ssr, vue ssr 开发'},
    // 其它配置,可查看官方
    // https://quasar.dev/quasar-plugins/meta#introduction
  }
}
useMeta(metaData)

</script>

效果图:

这是页面实现的例子效果

页面标题在服务端渲染完成了

数据在服务端渲染成html回来了

结语

Vue 技术广泛使用,但其在大型互联网开发中的应用相对较少。通过本文的学习,您可以掌握利用 Vue SSR 构建高性能、SEO 友好的网站的关键技巧。欢迎关注我,#Vue #SSR #SEO #独立开发 # Quasar,学习更多 SSR 相关的技巧,筹备下一系列精讲,让您更深入地了解 SSR 技术的应用与优势。

完整代码和操作过程已上传在github:

github.com/msjaver/ssr...

相关推荐
ElasticPDF-新国产PDF编辑器7 小时前
Vue use pdf.js and Elasticpdf tutorial
vue.js·pdf
Billy Qin8 小时前
Tree - Shaking
前端·javascript·vue.js
月明长歌8 小时前
Vue + Axios + Mock.js 全链路实操:从封装到数据模拟的深度解析
前端·javascript·vue.js·elementui·es6
头顶秃成一缕光9 小时前
若依——基于AI+若依框架的实战项目(实战篇(下))
java·前端·vue.js·elementui·aigc
冴羽yayujs9 小时前
SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照
前端·javascript·vue.js·前端框架·react
海石9 小时前
vue2升级vue3踩坑——【依赖注入】可能成功了,但【依赖注入】成功了不太可能
前端·vue.js·响应式设计
cypking10 小时前
解决 axios get请求瞎转义问题
vue.js
向阳25610 小时前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
艾克马斯奎普特11 小时前
Vue.js 3 渐进式实现之响应式系统——第一节:系列开篇与响应式基本实现
vue.js
梅子酱~11 小时前
Vue 学习随笔系列二十二 —— 表格高度自适应
javascript·vue.js·学习