在web开发中,ssr渲染(server side rendering)是一项非常关键的技术。它可以将页面的初始渲染工作在服务器上完成,然后将渲染好的html文件传递给客户端展示。相比于传统的客户端渲染(csr),ssr渲染可以提高网页的首屏加载速度、搜索引擎优化能力等。本文将介绍如何通过vue框架来实现ssr渲染。
vue create my-ssr-app
通过该命令,我们可以快速创建一个Vue的基础项目,然后通过命令进入项目目录:
cd my-ssr-app
npm install --save vue vue-server-renderer express
上述命令会自动将依赖安装到项目的package.json文件中。
new Vue({ render: h => h(App), }).$mount('#app')
修改为:
export function createApp() { return new Vue({ render: h => h(App) }) }
然后,我们需要将createApp函数导出,在后面创建服务器脚本时会用到。
立即学习“前端免费学习笔记(深入)”;
const express = require('express') const server = express() const { createBundleRenderer } = require('vue-server-renderer') const renderer = createBundleRenderer(require('./dist/vue-ssr-server-bundle.json')) const template = require('fs').readFileSync('./index.html', 'utf-8') server.use('/dist', express.static('./dist')) server.get('*', (req, res) => { const context = { url: req.url } renderer.renderToString(context, (err, html) => { if (err) { console.error(err) res.status(500).end('Internal Server Error') return } res.end(template.replace('<div id="app"></div>', `<div id="app">${html}</div>`)) }) }) server.listen(3000, () => { console.log('Server running at http://localhost:3000') })
这段代码实现了一个简单的Express服务器,它会将./dist目录下的静态文件暴露在/dist路由下,并且对于所有路由请求(*),使用createBundleRenderer方法从vue-ssr-server-bundle.json文件中读取server bundle,并且将渲染后的HTML文本映射到一个基础的HTML模版中,将最终结果返回给客户端。
npm run build npm run serve
其中,npm run build命令会将src目录下的代码构建为server bundle和client bundle,并且将构建后的结果存放在dist目录下。npm run serve命令会启动服务器并监听3000端口。在浏览器中输入http://localhost:3000即可访问SSR渲染后的页面。
到这里,我们就完成了一个简单的Vue SSR渲染的实践。当然,SSR渲染还有很多具体操作和细节需要我们深入了解和实践,本文只是提供了一个基础的入门示例。希望本文能够对大家掌握Vue SSR渲染有所帮助。
以上就是Vue优秀实践——从0到1实现SSR渲染的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号