页面渲染差异 Inertia vs. Vue with Laravel Backend

Page redering diffrence Inertia vs. Vue with Laravel Backend

我用两种方式实现了一个简单的 crud 应用程序。 一种使用 Laravel 和 Vue,另一种使用 Laravel、Vue 和 Inertia。

在我的 Vue/Laravel 应用程序中渲染一个简单的用户列表时(使用路由或初始页面加载),Vue 立即渲染整个页面并在从服务器接收到用户列表后立即加载。 -> 良好的用户体验,实现加载指示的可能性

在我的惯性应用程序中渲染相同的东西时,Vue 在从服务器接收到数据后渲染整个页面。这对于具有大量数据的应用程序来说是一件非常糟糕的事情。

即使在我真正的 small/slim 应用程序中,我也感觉到了差异,并在我的 UserController 中返回视图(或 Inertia::render)之前通过简单的 sleep(3) 解决了这个问题。

这 normal/is 有什么办法可以防止这种情况发生吗?还是我执行惯性不佳?

我正在使用 inertia.js 0.8.5、inertia-vue 0.5.5 和 Vue 2.6.12

  1. 通常,如果您想使用 Inertia 显示用户列表,您会使用 Laravel 的内置分页对列表服务器端进行分页。如果页面加载时间很慢,您可能试图加载太多 data/missing eager loads/missing DB indexing/doing 一些可以优化的计算。
  2. 您可以使用 Progress Indicator 来改善在惯性视图之间导航时的用户体验。如果用户在 SPA 中看到一个空的 table,并且在数据加载之前调用 ajax 与在视图重新加载之前看到进度条,这对用户有什么不同吗?海事组织不是真的。
  3. 如果出于某种原因在特定视图中显示 table 布局(或其他一些空数据容器)真的很重要,即使它有一段时间是空的,您也可以随时加载数据ajax 在那个一次性的案例中。并非 Inertia 应用程序中的所有数据都需要从控制器“推送”到视图,您也可以从 Vue/React 端“拉”它。