Hoppa till innehåll

Svelte

Sitevision supports both server and client side rendering with Svelte.

index.js

For rendering a client side only app use the framework agnostic client renderer.

render(App, [props], [settings])

@soleil-se/app-util/server/svelte

Get a HTML string for rendering a universal Svelte application. If a client bundle is available the server rendered HTML will be hydrated and not completely re-rendered.

Returns: String - HTML for rendering a Svelte application.

ParamTypeDefaultDescription
[App]SvelteSvelte app to be rendered.
[props]Object{}Props that will be passed to the app.
[settings]Object{}Settings object. Forwarded to
[settings.async]BooleanfalseIf the app script should be loaded asynchronously.
[settings.defer]BooleantrueIf the app script should be loaded after DOM is ready.
[settings.req]ObjectThe req object from Sitevision, pass this to optimize browser specific script loading if you have multiple instances of the app.

Read more about async and defer.

In app_src/index.js or app_src/server/index.js.

import router from '@sitevision/api/common/router';
import { render } from '@soleil-se/app-util/server/svelte';
import App from './App.svelte';
router.get('/', (req, res) => {
const props = { foo: 'bar' };
res.send(render(App, props));
});

renderServer(App, [props])

@soleil-se/app-util/server/svelte

Get a HTML string for rendering a server side Svelte application.

Returns: String - HTML for rendering a Svelte application.

ParamTypeDefaultDescription
[App]SvelteSvelte app to be rendered.
[props]Object{}Server data that will be available as props and as app data.

In app_src/index.js or app_src/server/index.js.

import router from '@sitevision/api/common/router';
import { renderServer } from '@soleil-se/app-util/server/svelte';
import App from './App.svelte';
router.get('/', (req, res) => {
const props = { foo: 'bar' };
res.send(render(App, props));
});

main.js

render(App, [settings])

@soleil-se/app-util/client/svelte

Renders a client side Svelte application.

Returns: * - Initialized Svelte component.

ParamTypeDefaultDescription
App*Svelte app root component.
[settings]Object{}Settings object.
[settings.selector]String`#app_mount_${appId}`Query selector for mount element.
[settings.intro]StringfalseIf true, will play transitions on initial render, rather than waiting for subsequent state changes.

In app_src/main.js or app_src/client/index.js.

import { render } from '@soleil-se/app-util/client/svelte';
import App from './App.svelte';
render(App);

Mount the app in another element:

import { render } from '@soleil-se/app-util/client/svelte';
import App from './App.svelte';
render(App, { selector: '#mount_app_here' });