¸üÐÂʱ¼ä:2021Äê08ÔÂ20ÈÕ16ʱ48·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

·þÎñ¶ËäÖȾµÄʵÏÖ£¬Í¨³£ÓÐ3ÖÖ·½Ê½£¬µÚ1ÖÖÊÇÊÖ¶¯½øÐÐÏîÄ¿µÄ¼òµ¥´î½¨£¬µÚ2ÖÖÊÇʹÓÃvue CLI 3½ÅÊּܽøÐд£¬µÚ3ÖÖÀûÓÃһЩ³ÉÊì¿ò¼ÜÀ´´î½¨(ÈçNuxt,js£©£¬±¾½Ú½²½âµÚ1Öֺ͵Ú2ÖÖ·½Ê½£¬´øÁì¶ÁÕßʵÏÖ¼òµ¥µÄ·þÎñÆ÷¶ËäÖȾ¡£
1.´´½¨ vue-ssrÏîÄ¿
ÔÚC:\vue\chapter08Ŀ¼ÖУ¬Ê¹ÓÃÃüÁîÐй¤¾ß´´½¨Ò»¸övue-ssrÏîÄ¿£¬¾ßÌåÃüÁîÈçÏÂ:
mkdir vue-ssr cd vue-ssr npm init -y
Ö´ÐÐÉÏÊöÃüÁîºó£¬»áÔÚvue-ssr Ŀ¼ÏÂÉú³ÉÒ»¸öpackage.jsonÎļþ¡£
ÔÚVueÖÐʹÓ÷þÎñÆ÷¶ËäÖȾ£¬ÐèÒª½èÖúVueµÄÀ©Õ¹Ä£¿évue-server-renderer¡£ÏÂÃæÎÒÃÇÔÚvue-ssrÏîÄ¿ÖÐʹÓÃnpmÀ´°²×°vue-server-renderer,¾ßÌåÃüÁîÈçÏÂ:
npm install vue@2.6.x vue-server-renderer@2.6.X --save
vue-server-rendererÊÇVueÖд¦Àí·þÎñÆ÷¼ÓÔØµÄÒ»¸öÄ£¿é,¸øVueÌṩÔÚNode.js·þÎñÆ÷¶ËäÖȾµÄ¹¦ÄÜ¡£vue-server-rendererÒÀÀµ-ЩNode.jsÔÉúÄ£¿é£¬ËùÒÔĿǰֻÄÜÔÚNode.jsÖÐʹÓá£
2.VueäÖȾ
½«vue-server-renderer°²×°Íê³Éºó£¬´´½¨·þÎñÆ÷½Å±¾Îļþtest.js,ʵÏÖ½«VueʵÀýµÄäÖȾ½á¹ûÊä³öµ½¿ØÖÆÌ¨ÖУ¬¾ßÌå´úÂëÈçÏÂ:
//¢Ù´´½¨Ò»¸öVueʵÀý
const Vue = require('vue')
const app = new Vue({
template: '<div>SSR µÄ¼òµ¥Ê¹ÓÃ</div>'
//¢Ú ´´½¨Ò»¸örendererʵÀý
const renderer = require ('vue-server-renderer').createRendere()
//¢Û½«VueʵÀýäÖȾΪHTML
renderer.renderToString(app, (err, html) => {
if (err) {
throw err
}
console.log(html)
})
ÔÚÃüÁîÐÐÖÐÖ´ÐÐnode test.js,ÔËÐнá¹ûÈçÏÂËùʾ:
<div data-server-rendered="true">SSRµÄ¼òµ¥Ê¹ÓÃ</div>
´ÓÉÏÊö½á¹û¿ÉÒÔ¿´³ö£¬ÔÚ<div>±êÇ©ÖÐÌí¼ÓÁËÒ»¸öÌØÊâµÄÊôÐÔdata-server-rendered,¸ÃÊôÐÔÊǸæË߿ͻ§¶ËµÄVueÕâ¸ö±êÇ©ÊÇÓÉ·þÎñÆ÷äÖȾµÄ¡£
²ÂÄãϲ»¶£º
ʲôÊÇ·þÎñÆ÷¶ËäÖȾ£¿ËüÓÐÄÄЩÓŵãºÍ²»×㣿
ä¯ÀÀÆ÷äÖÈ¾Ò³ÃæÁ÷³ÌµÄ4¸ö²½Öè
ʲôÊǿͻ§¶ËäÖȾ£¿
ÀÖÓãµç¾ºwebǰ¶Ë¸ß¼¶Èí¼þ¹¤³Ìʦ¿Î³Ì
±±¾©Ð£Çø