好像未使用window.location.href的情况下,并没有进行服务端渲染是吗?
来源:9-7 【转】对SPA应用的第二次SSR改造:防止客户端二次预取数据

卷狗
2023-05-08
看完9.7之后产生的一些疑惑.
使用window.location.href,客户端有重新收到一个关于home页的新的document文档.并且服务端home页面的asyncData的逻辑也有执行.
但是采用router.push({name:“home”})的方式跳转以后,服务端关系home页面的asyncData逻辑并未执行,这一部分被换到了客户端执行.
是否可以理解为.除了第一下进入页面时走的是服务端渲染,后面其实并非是服务端渲染了,而是走的客户端渲染?
如果是走的客户端渲染,为什么右键查看源码的时候,发现源码里面,其实是包含了完整的像是走了asyncData的内容,这就很奇怪…
1回答
-
Harry_wang
2023-05-09
理解的没错
课程中某一章节应该有讲到这个问题。
1、直接刷新页面就相当于reload,这样就走了服务端渲染,可以拿到服务端直接渲染好的带有数据的静态页面。
2、在课程第10章中使用前端路由做跳转,是因为并不想每次跳转页面的时候重新刷新当前页面,这样就失去了单页面应用的优势和用户体验,因此跳转页面使用的前端路由,这样就没有走服务端,所以需要调用接口获取数据,因此network里有请求记录。
总结:服务端渲染主要用于首屏渲染和SEO,这些情况下在抓取单独页面的时候肯定会经过reload页面的过程,所以你不用担心network是否出现请求的现象。综上所述,服务端渲染你可以采用两种方式跳转:
a、window.open或者window.location.href
b、前端路(vue-router)
022024-07-22
相似问题