成都网站建设设计

将想法与焦点和您一起共享

nuxt.js页面初始化加载优化的方法教程

这篇文章主要讲解了“nuxt.js页面初始化加载优化的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nuxt.js页面初始化加载优化的方法教程”吧!

我们提供的服务有:网站设计制作、成都网站设计、微信公众号开发、网站优化、网站认证、桂阳ssl等。为上1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的桂阳网站制作公司

leafage上线已经有一段日子了,最近将域名从abeille.top换到了leafage.top,之前所做的一些搜索引擎的收录几乎都没有了,虽然abeille.top还保留访问,但是最晚到今年11月就不再用了,目前暂定使用 leafage.top。

首页是有多个模块的的组件组合而成的,包括:

  • hero:最新三条记录

  • featured:除过最新的三条之后的记录

  • topPosts:访问量最多的三条记录

  • postsList:根据创建时间排序的记录

  • sidebar:默认排序规则的5条记录

  • recommend:最新的6条记录

在之前呢,每个组件自己请求加载数据,那就会是从页面排版,逐个进行数据请求,这样导致了页面要完成加载就需要等待所有组件的数据请求之后,继续进行渲染,阻塞时间很长,通过speedtest测试,首页阻塞时间达4s之多。

之前介绍过asyncData()和fetch()都会阻塞页面加载,直到数据加载完成才会继续,那就可以通过减少数据请求时间来缩短页面加载时间。由于之前每个组件都是各自请求数据,所以会按照排版进行顺序渲染组件内容,那也就会顺序发送数据请求接口。

那么缩短时间的思路就有了,让这些组合的组件数据,同时去请求,那么它阻塞的时间最大限度是多个请求中耗时最长的那个请求的时间,这个顶多在几百毫秒之内。

然而在看了axios的官方介绍,使用axios.all([method1(), method2()]),并不能在next.js中使用,需要通过Promise.all([method1(), method2()])来实现,同时导出结果通过数组来接收,示例如下:

async asyncData({ app: { $axios } }) {    const [      heroDatas,      featuredDatas,      topDatas,      listDatas,      recommendDatas,    ] = await Promise.all([      await $axios.$get(SERVER_URL.posts.concat("?page=0&size=3")),      await $axios.$get(SERVER_URL.posts.concat("?page=1&size=4")),      await $axios.$get(SERVER_URL.posts.concat("?page=0&size=3&order=viewed")),      await $axios.$get(SERVER_URL.posts.concat("?page=0&size=10&order=likes")),      await $axios.$get(SERVER_URL.posts.concat("?page=0&size=6&order=viewed")),    ]);    return { heroDatas, featuredDatas, topDatas, listDatas, recommendDatas };  },

在完成此项优化后,首页加载速度降到了0.4s,提高了不止一星半点呀。

感谢各位的阅读,以上就是“nuxt.js页面初始化加载优化的方法教程”的内容了,经过本文的学习后,相信大家对nuxt.js页面初始化加载优化的方法教程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


文章题目:nuxt.js页面初始化加载优化的方法教程
浏览地址:http://chengdu.cdxwcx.cn/article/pjpeij.html