July Releases
What we have been working on in July 2024.
πWe are looking for sponsors.
Fixes: 40
Features
Improved head managementvike-react-apollo
vike-node
Improved URL handling
injectScriptsAt
clientOnly()
New Bati integrations
Project
Internal refactoringNew marketing
See also
vike > CHANGELOG.md
vike-react > CHANGELOG.md
vike-vue > CHANGELOG.md
vike-solid > CHANGELOG.md
Improved head management
We've made a ton of improvements to <head> management when using vike-{react,vue,solid}.
See Guides > <head> tags.
It's already implemented and released for
vike-react. Forvike-{vue,solid}the ETA is this week (first August days).
πAuthor:
brillout
vike-react-apollo
We released a new
Vike extension vike-react-apollo
to seamlessly use vike-react with GraphQL Apollo.
Like other extensions, vike-react-apollo is lightweight (only 202 lines of code!). This means that, instead of using vike-react-apollo, you can easily integrate GraphQL Apollo (or any other GraphQL client) yourself.
Both
vike-reactandvike-react-apolloare lightweight thanks to the heavy lifting done by Vike andreact-streaming. This showcases Vike's philosophy of having a sturdy core with lightweight extensions.
πAuthor:
nitedani
vike-node
One fundamental feature missing for releasing Vike 1.0.0 is being able to use Vite to transpile server code such as Express.js or Hono code (#562).
We released a new package vike-node for that purpose.
It's somewhat experimental so expect issues here and there. We may built it directly into Vike (instead of being a separate package).
πAuthor:
nitedani
Improved URL handling
Vike exports a new modifyUrl() utility, which is convenient for internationalization as shown in the example at Guides > Internationalization (i18n).
Also, pageContext.urlParsed has new properties:
http://localhost:3000/some-base-url/hello/s%C3%A9bastien
{
pathname: '/hello/sΓ©bastien',
pathnameOriginal: '/some-base-url/hello/s%C3%A9bastien',
search: {},
searchAll: {},
searchOriginal: null,
hash: '',
hashOriginal: null,
origin: 'http://localhost:3000',
// Without Base URL, doesn't decode escaped characters
href: 'http://localhost:3000/hello/s%C3%A9bastien',
protocol: 'http://',
hostname: 'localhost',
port: 3000
}πAuthor:
brillout
injectScriptsAt
The new injectScriptsAt setting allows you to control where Vike injects scripts.
It was already possible with
injectFilter()but only partially:injectScriptsAtallows you to inject scripts at the beginning of the HTML stream. It's also simpler to use thaninjectFilter()and it can be used by Vike extensions.
πAuthor:
phonzammi
clientOnly()
Not only Vue and Solid users, but now also React users can use the clientOnly() helper which has the same functionality as the <ClientOnly> wrapper (now deprecated) but with a much improved DX.
πAuthor:
nitedani
New Bati integrations
New Bati integrations:
π
Internal refactoring
We continuously work on internal improvements. They aren't visible to the user but they have a foundational impact on Vike and its ecosystem.
For example:
- We are making progress on Universal Middlewares, in order to enable Vike extensions to automatically and seamlessly integrate server middlewares.
π
Author:
magne4000 - We refactored the stream chunk orchestration logic of
react-streaming(which powersvike-reactand other projects). The logic is now crystal clear and robust (it was somewhat messy and buggy).π
- We refactored Vike's URL handling. (The logic is now crystal clear with lots of explanatory comments.)
π
Authors:
brillout
New marketing
We've been talking with the community to gather feedback for the upcoming new marketing. For example:
πAuthor:
brillout
