feat: remove content loading and refine scroll behavior #1117
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.
Summary
contentLoading
looks like a nice feature:But it introduced some problems:
Due to the asynchronous loading of
Content
, VuePress won't get the current anchor links after the page is loaded, so we are forced to create an event:"contentMounted"
, especially after combining vue-router'sscrollBehavior
, it greatly increases the complexity of our code and would take some weird behaviors.See: Plugins bottom of page do not seem to be working (noticable on https://vuepress.vuejs.org) #1113、 Inconsistent behavior when browsing pages #1016、🐛 Fix #1011 anchor links not updating current URL #1014、Regression in content rendering #895 etc.
Since VuePress already has a good PWA experience and offline optimization,
contentLoading
is an unnecessary requirement in the case of faster network speeds or when it is already available offline.There are two strategies to handle route switching:
The two needs are fully inconsistent in themselves. Following the principle of simplicity, we still choose the former.
With this PR, we will eliminate the main potential issue of alpha and start thinking about entering the beta phase.
What kind of change does this PR introduce? (check at least one)
If changing the UI of default theme, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)
If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:
fix #xxx[,#xxx]
, where "xxx" is the issue number)You have tested in the following browsers: (Providing a detailed version will be better.)
If adding a new feature, the PR's description includes:
To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information: