#javascript #vue.js #vuejs3 #vite
Вопрос:
Я создаю свой проект в vue и vite js для ssr. До сих пор рендеринг на стороне сервера работает нормально, например, я мог бы добавить маршрутизатор vue в свой проект, но визуализировать содержимое. Я попытался импортировать маршруты и создать приложение.используйте (маршруты) Но он не отображает содержимое маршрутов, только приложение.vue
Мой main.js
const { createServer } = require("vite"); const server = require("express")(); const fs = require("fs"); const path = require("path"); async function main() { const vite = await createServer({ server: { middlewareMode: true } }); server.use(vite.middlewares); server.get("*", async (req, res) =gt; { let html = fs.readFileSync(path.resolve(__dirname, "index.html"), "utf-8"); const { render } = await vite.ssrLoadModule("/src/entry-server.js"); const appContent = await render(); html = html.replace("lt;!--ssr--gt;", appContent); res.end(html); }); server.listen(8080); } main();
Мой entry-server.js
import { createApp } from "vue"; import { renderToString } from "@vue/server-renderer"; import App from "./App.vue"; export async function render() { const app = createApp(App); const appContent = await renderToString(app); return appContent; }
Мой entry-client.js
import { createApp } from "vue"; import App from "./App.vue"; const app = createApp(App); app.mount("#app");