如何使用Vue.js进行服务器端渲染(SSR)?

首先,文章的目的;我们为什么需要SSR方法,为什么在何处使用SSR,SSR和CSR有何区别?我们将通过示例巩固我们对这些知识的了解。

什么是客户端渲染(CSR)?

在客户端渲染中,我们的服务器将简单的纯HTML页面返回到浏览器。然后,由我们的服务器返回的html页面在用户浏览器中使用javascript进行编译,并获得有意义的html输出。最终的html输出由浏览器编译并呈现给用户。

什么是服务器端渲染(SSR)?

用这种方法,JavaScript是在服务器而不是浏览器上编译的。因此,直接且有意义的html直接在浏览器中进行

我应该何时考虑使用SSR?

这有两个主要原因; 更好的SEO和更快的发布时间。

执行SSR使我们对SEO更加坚强。因为Google Spiders(或其他爬虫)可以理解简单而有意义的html输出。

另外,如果我们使用ssr,则我们的网站打开速度更快。因为我们在服务器端进行编译,所以我们构建了一个更加用户友好的网站。

权衡取舍

  • SSR需要可以运行Node.js服务器的环境。
  • 由于编译过程是由服务器端进行的,因此您的成本将略有增加。
  • 在某些情况下,您将必须实施解决方法。

我们来到了真正的问题:)

如何使用Vue.js进行服务器端渲染(SSR)?

有很多方法可以做到这一点。在本文中,我将告诉您其中两个。使用Nuxt.js和Express

使用Express的服务器端渲染(SSR)?

我们使用vue-server-renderer软件包。这对于vue.js文档是必需的。在终端上运行此命令进行设置

npm install vue vue-server-renderer express — save

此程序包中的渲染器功能对我们很重要。Vue实例正在使用渲染器功能在服务器端进行编译。

让我们创建一个index.js文件并导入必要的库;

const Vue = require('vue')
const server = require('express')()
const renderer = require('vue-server-renderer').createRenderer()

现在,我们在express中创建vue实例。

server.get('*', (req, res) => {
  const app = new Vue({
     data: {},
     template: ``
  })
})
server.listen(8000)

Vue样本已在Express服务器中准备好。我们的SSR样本现已准备就绪,让我们进行样本研究。

server.get('*', (req, res) => {
 const app = new Vue({
    data: {
    array: [ 'vue', 'java', 'python', 'javascript'],
  },
    template: `
{{ a }}
` }) renderer.renderToString(app, (err, html) => { res.end(` Vue Js – SSR SAMPLE ${html} `) }) }) server.listen(8000)

现在,我们将端口设置为8000,让我们在节点上运行index.js文件。

使用Nuxt进行服务器端渲染(SSR)?

Nuxt是一个基于Vue.js的渐进框架,用于创建现代Web应用程序。将nuxt框架附加到Vue栖息地后,需要具有一些设置的,完全兼容ssr的Web应用程序。

该架构显示了在调用服务器或用户通过浏览应用程序时Nuxt.js所调用的内容:

该框架中使用的文件结构与next.js相同


页面下的每个vue文件显示一个单独的路由。现在可以使用新设置来静态生成文件。(Nuxt v2.13)通过这种方式,您可以开发完全与seo兼容的Web应用程序。这是您将在nuxt.config.js下添加的设置

就这么简单:)

结论

现在,您可以通过本文J获得有关vue和ssr的新信息

客户端:运行webpack-dev-server,监视Vue组件和js代码的更改,并生成带有清单资源到dev-server的客户端清单,将其保存到磁盘并实时更新浏览器中的代码和样式。

服务器端:它以观察者身份运行webpack,构建服务器捆绑包并重新启动应用程序,然后进行了更改。(在我们提到的两种方法中)

参考

How to Server Side Rendering (SSR) with Vue.js?

你可能感兴趣的:(如何使用Vue.js进行服务器端渲染(SSR)?)