【问题标题】:Vue.js prefetch data with client side renderingVue.js 通过客户端渲染预取数据
【发布时间】:2021-10-14 12:06:47
【问题描述】:
我知道Vue中的ssr(服务器端渲染),比如nuxt。它在serverPrefetch() 函数中获取数据并在服务器端呈现内容,然后请求才将数据返回给用户并且他开始下载app.js。
但是我们能否在用户请求后立即开始从后端加载数据,而不是等待下载 vue 脚本,并且在所有数据加载之前不停止请求。所以用户正在下载app.js,而我们的服务器正在处理sql请求并形成响应。
【问题讨论】:
标签:
javascript
vue.js
server-side-rendering
【解决方案1】:
只要关注Nuxt - 您可以在following article 中找到关于SSR(和客户端)选项的很好的总结。剧透警报 - 我认为 SSR 仍然是您想要实现的最佳目标。在 Nuxt 的世界里 - NuxtServerInit 和 AsyncData 是适合这项工作的人。
假设您决定远离 SSR - 您有哪些选择?
-
在 Vue 应用程序之前加载并运行一些超轻量级的 js,以获取数据并以某种方式与应用程序共享(例如 - 将其保存到本地存储)。它真的会提供速度优势吗?我真的很怀疑,特别是考虑到 Vue 应用程序在客户端浏览器中缓存时的加载速度。
-
将后端数据转储到服务器响应本身。我的意思是,您可以预取所有繁重的内容并将其作为 json 编码对象粘贴到您的页面中。这肯定会为初始请求节省一些时间,但是——那个数据块有多大?会不会让最初的负担太重,破坏最初的目的?这些是您应该根据您的特定用例回答的问题。