跟着互联网技巧的开展,前后端分别已成为现代Web开辟的主流形式。Vue作为前端开辟中广泛利用的框架,其效劳端衬着(SSR)功能为开辟者供给了构建高机能、SEO友爱的利用的可能性。本文将带你从入门到实战,深刻懂得Vue效劳端衬着SSR,轻松实现前后端分别。
Vue效劳端衬着(SSR)是一种在效劳器端生成完全HTML页面,然后将衬着好的页面直接发送给客户端的技巧。与传统的客户端衬着比拟,SSR存在以下上风:
Vue 3经由过程@vue/server-renderer
跟vue-router
供给了富强的SSR支撑,让开辟者可能轻松构建高机能的效劳端衬着利用。
起首,我们须要安装须要的依附:
mkdir vue3-ssr-demo
cd vue3-ssr-demo
npm init -y
npm install vue@next vue-router@4 @vue/server-renderer express
npm install -D @vitejs/plugin-vue vite webpack webpack-cli
创建项目构造:
vue3-ssr-demo/
src/
App.vue
main.js
entry-client.js
entry-server.js
server.js
vite.config.js
App.vue
<template>
<div id="app">
<h1>Hello, Vue SSR!</h1>
</div>
</template>
<script>
export default {
name: 'App',
};
</script>
entry-server.js
import { createApp } from './App.vue';
export default context => {
return new Promise((resolve, reject) => {
const { app, router } = createApp();
router.push(context.url);
router.onReady(() => {
const matchedComponents = router.getMatchedComponents();
if (!matchedComponents.length) {
return reject({ code: 404 });
}
resolve(app);
}, reject);
});
};
entry-client.js
import { createApp } from './App.vue';
const { app, router } = createApp();
router.onReady(() => {
app.$mount('#app');
});
server.js
const Koa = require('koa');
const { createServer } = require('http');
const { Server } = require('socket.io');
const app = new Koa();
const server = createServer(app.callback());
const io = new Server(server);
app.use(async (ctx, next) => {
const html = await createBundle(ctx);
ctx.body = html;
});
server.listen(3000);
entry-server.js
中的createApp
函数创建Vue利用,并履行路由跳转。Vue效劳端衬着SSR为开辟者供给了构建高机能、SEO友爱的利用的可能性。经由过程本文的介绍,信赖你曾经对Vue效劳端衬着SSR有了更深刻的懂得。盼望你能将所学知识利用到现实项目中,实现前后端分别,打造出更好的Web利用。