Add deferred props #3
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Deferred props allows you to defer the loading of certain page data until after the initial page render. This can be useful for improving the perceived performance of your app by allowing the initial page render to happen as quickly as possible.
Steps
TopicsControllerto see why. The code to calculate trending topics is simulating an expensive calculation, thanks to asleepcall.trending_tropicsprop and uncomment the line below withInertiaRails.defer.What's happening?
When you mark a prop as "deferred", the Rails renderer will not compute it on the page load. The Inertia.js client side code will then immediately make a partial reload request to load the deferred data. Having the "trending icon" appear immediately is not critical for our UX, so we get a huge perceived performance boost from deferring it. Complicated dashboard data are a great candidate for deferred props.