当前位置: 首页 > 后端技术 > Node.js

首屏渲染优化攻略

时间:2023-04-03 15:01:50 Node.js

1.使用webpack打包时:在生产环境中尽量减少依赖包,按需引用(webpack-bundle-analyzer)2.按需分块加载组件importVuefrom'vue';从'vue-router'导入路由器;Vue.use(路由器);导出默认新路由器({模式:'历史',linkActiveClass:'路由器链接类',路由:[{路径:'/',组件:resolve=>require(['../components/components'],resolve),}]})3.使用prerender//webpack.prod.config.jscnpmiprerender-spa-plugin--save-devcnpmivue-meta-info--save-devconstPrerenderSPAPlugin=require('prerender-spa-plugin');constRenderer=PrerenderSPAPlugin.PuppeteerRenderer;plugins:[newPrerenderSPAPlugin({//生成静态文件的目录,路径只能是第一层staticDir:path.join(__dirname,'../dist'),//对应需要预渲染的路由文件routes:['/','/detail'],//预编译renderer:newRenderer({inject:{foo:'bar'},headless:false,//会在document.dispatchEvent(newEventofmain.js('render-event'))triggersrenderAfterDocumentEvent:'render-event'})})]//main.jsimportVuefrom'vue';//网页标签支持importVueMetaInfofrom'vue-meta-info';Vue.use(VueMetaInfo);newVue({el:'#app',router,store,render:h=>h(App),mounted(){document.dispatchEvent(newEvent('render-event'))}})#newRouter({#mode:'history'//必须使用'history'模式#})//Process***.vueexportdefault{metaInfo:{title:'pagetitle',meta:[{name:'keywords',content:'keywords'},{name:'description',content:'description'}]}}4.使用gzip压缩减少传输文件的大小//以Nginx服务器为例http{。..........#Enablegzipgzipon;#启用gzip压缩的最小文件gzip_min_length1k;#设置压缩缓冲区大小,这里设置为416K内存作为压缩结果流缓存gzip_buffers416k;#gzip压缩级别,1-10,数字越大,压缩效果越好,占用CPU时间越多gzip_comp_level2;#要压缩的文件类型JavaScript有多种形式。这些值可以在mime.types文件中找到。gzip_types文本/普通应用程序/javascript应用程序/x-javascript文本/css应用程序/xml文本/javascript应用程序/x-httpd-php图像/jpeg图像/gif图像/png字体/ttf字体/otf图像/svg+xml;#是否在http头中添加Vary:Accept-Encoding,建议开启gzip_varyon;#禁用IE6gzipgzip_disable"MSIE[1-6]\.";.....................}5。服务端渲染案例:https://gitee.com/vikeel/mySe...