使用 Vue 和 Express 进行服务端渲染

发布于 2022-07-28 00:00:57 字数 1358 浏览 136 评论 0

Vue 对 Node.js 中的服务器端渲染提供了可靠的支持 。 这意味着,给定一个 Vue 应用程序,您可以使用 vue-server-renderer 图书馆 。下面是使用 Express

const { renderToString } = require('vue-server-renderer').createRenderer();
const expressApp = require('express')();

expressApp.get('*', (req, res) => {
  const app = new Vue({
    // Initialize with data from the request.
    data: { content: req.query.content },
    template: '<div>{{content}}</div>'
  });
  renderToString(app).
    // Sends '<div data-server-rendered="true">Hello, World</div>'
    then(html => res.send(html)).
    catch(err => res.status(500).send(err.stack));
});

const server = await expressApp.listen(3000);

请注意, renderToString() 函数返回一个承诺。 确保您 处理错误

注意以上 div 有个 data-server-rendered 属性。 这 data-server-rendered 属性将此 div 标记为 客户端 hydration 。 换句话说,您可以使用 $mount(),使您的 Vue 客户端获取您的静态 HTML 并开始对客户端事件做出反应的功能。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

梦年海沫深

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文