This is a simple test to check when event handlers are attached using SvelteKit. There are better ways of doing this, for example monkey patching using a proxy, but for now this will do.
This test was run on both dev and production versions.
SvelteKit sends the component state along with the HTML content to the client, but it still needs to initialize on the client via start.js
and app.js
and so on before hydration can happen. This is the order:
Set up client (start.js, app.js...)
// start.js in dev mode
...
const client = create_client(app, target);
init({ client });
if (hydrate) {
await client._hydrate(hydrate);
} else {
client.goto(location.href, { replaceState: true });
}
client._start_router();
Hydrate
To try this for yourself, run the app and open in Chrome or Firefox
Chrome Network:
Firefox Network:
Chrome Profiler:
Firefox Profiler:
Everything you need to build a Svelte project, powered by create-svelte
.
If you're seeing this, you've probably already done this step. Congrats!
# create a new project in the current directory
npm create svelte@latest
# create a new project in my-app
npm create svelte@latest my-app
Once you've created a project and installed dependencies with npm install
(or pnpm install
or yarn
), start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
To create a production version of your app:
npm run build
You can preview the production build with npm run preview
.
To deploy your app, you may need to install an adapter for your target environment.