No description
039eb817e1
Removes `next-head-count`, improving support for 3rd party libraries that insert or append new elements to `<head>`. --- This is more or less what a solution with a `data-` attribute would look like, except that instead of directly searching for elements with that attribute, we serialize the elements expected in `<head>` and then find them/assume ownership of them during initialization (in a manner similar to React's reconciliation) based on their properties. There are two main assumptions here: 1. Content is served with compression, so duplicate serialization of e.g. inline script or style tags doesn't have a meaningful impact. Storing a hash would be a potential optimization. 2. 3rd party libraries primarily only insert new, unique elements to head. Libraries trying to actively manage elements that overlap with those that Next.js claims ownership of will still be unsupported. The reason for this roundabout approach is that I'd really like to avoid `data-` if possible, for maximum compatibility. Implicitly adding an attribute could be a breaking change for some class of tools or crawlers and makes it otherwise impossible to insert raw HTML into `<head>`. Adding an unexpected attribute is why the original `class="next-head"` approach was problematic in the first place! That said, while I don't expect this to be more problematic than `next-head-count` (anything that would break in this new model also should have broken in the old model), if that does end up being the case, it might make sense to just bite the bullet. Fixes #11012 Closes #16707 --- cc @Timer @timneutkens |
||
---|---|---|
.github | ||
.vscode | ||
bench | ||
docs | ||
errors | ||
examples | ||
packages | ||
test | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.npmrc | ||
.prettierignore | ||
.prettierignore_staged | ||
.prettierrc.json | ||
azure-pipelines.yml | ||
check-examples.sh | ||
check-pre-compiled.sh | ||
CODE_OF_CONDUCT.md | ||
contributing.md | ||
jest.config.js | ||
lerna.json | ||
license.md | ||
lint-staged.config.js | ||
package.json | ||
publish-release.sh | ||
readme.md | ||
release.js | ||
run-tests.js | ||
SECURITY.md | ||
test-file.txt | ||
UPGRADING.md | ||
yarn.lock |
Getting Started
Visit https://nextjs.org/learn to get started with Next.js.
Documentation
Visit https://nextjs.org/docs to view the full documentation.
Who is using Next.js?
Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.
Contributing
Please see our contributing.md.
Authors
- Arunoda Susiripala (@arunoda) – Vercel
- Tim Neutkens (@timneutkens) – Vercel
- Naoyuki Kanezawa (@nkzawa) – Vercel
- Tony Kovanen (@tonykovanen) – Vercel
- Guillermo Rauch (@rauchg) – Vercel
- Dan Zajdband (@impronunciable) – Knight-Mozilla / Coral Project