With Svelte, web components can be created and used.
The integration is ridiculously easy, at least in normal Svelte, which is usingCSR:
<script>
import Greeter from './webcomponent.js'
customElements.define('x-greeter', Greeter)
</script>
<main>
<h1>Welcome to SvelteKit</h1>
<x-greeter></x-greeter>
</main>
It is a little bit more difficult inSvelteKit:
<script>
import { onMount } from 'svelte'
let message = 'Hello from SvelteKit!'
onMount(async () => {
// Dynamically import the web component on the client side
const component = await import('../lib/webcomponent.js')
// Create a new instance of the web component
customElements.define('my-web-component', component.default)
})
function handleCustomEvent(event) {
alert(event.detail)
}
</script>
<main>
<h1>Web Component in SvelteKit Example</h1>
<my-web-component {message} on:customEvent={handleCustomEvent}
></my-web-component>
</main>