日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue服务端渲染(Nodejs)

發布時間:2023/12/20 vue 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue服务端渲染(Nodejs) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要參考官方文檔:
https://ssr.vuejs.org/zh/

安裝:
npm install vue vue-server-renderer --save

應用場景:
Node某一路由返回的頁面利用vue component和服務端數據進行服務端的頁面渲染,(沒有進行服務端渲染的原因是數據來源為服務端,其他模板引擎使用res.render()方法實現相同服務端渲染功能)
建議代碼結構:MVC中的Controller層,一個頁面對應一個controller

關鍵代碼:

homepage.js:

const Vue = require('vue'); const fs = require('fs'); const path = require('path');const renderer = require('vue-server-renderer').createRenderer({template: fs.readFileSync(path.join(__dirname,'../','views','home.html'), 'utf-8') }); //定義返回的html文件的地址exports.postLoginToHome = function (req,res,next) {const username = req.body.username;const subComponent = {template: `<span>Hi</span>`} //子組件定義const homeComponent = new Vue({ //定義根組件 注意:這里不用el定位,而是<!--vue-ssr-outlet--> data: function() {return {username: username}},template:`<div class="homePageWrapper"><ul><li id="username">{{username}}</li></ul><sub-component></sub-component></div>`,components: {'sub-component':subComponent //使用多個組件}});user.login(user,function(){res.redirect("/")},function(){renderer.renderToString(homeComponent, (err, html) => {res.send(html); // html 將是注入應用程序內容的完整頁面})}); };

home.html:

<div id="homeComponent"><!--vue-ssr-outlet--> </div>

注意 <!–vue-ssr-outlet–> 注釋 – 這里將是應用程序 HTML 標記注入的地方
在Router處理文件里引入postLoginToHome方法即可:
home.js:

const homepageController =require("../controllers/homepage"); //controller homepage.js地址 const router = express.Router();router.post('/home/:userId', homepageController.postLoginToHome); //應用方法 與特定路由綁定module.exports = router;

總結

以上是生活随笔為你收集整理的Vue服务端渲染(Nodejs)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。