好像未使用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)


0
2
Harry_wang
回复
gavinZjiam
不是的 跟哈希不哈希没关系
2024-07-22
共2条回复

Vue3+TS打造SSR网站应用,0到1实现服务端渲染

教你一套前端技术组合拳,Get全套网站优化解决方案

367 学习 · 192 问题

查看课程