Author -  Sai gowtham

How to Create Custom events in Svelte.js

In this tutorial, we are going to learn about how to create and use custom events in svelte.

Custom events

Custom events help us to communicate to parent components from child components.

Creating a Custom event

Let’s create our first custom event by importing the createEventDispatcher from the ‘svelte’.

Name.svelte
<script>
  import { createEventDispatcher } from "svelte";

  export let name;
  let dispatch = createEventDispatcher();  function myCustom() {    dispatch("changename");  }</script>

<div>
  <h1>{name}</h1>
  <!-- dispatching the custom event `changename` -->  <button on:click={myCustom}>Change Name</button></div>

In the above component, we created our custom event called changename and dispatching the event by clicking a button.

Listening Custom event

To listen for the custom event we need to use on: directive.

App.svelte
<script>
  import Name from "./Name.svelte";  let framework = "svelte";

 function handleChange(){
     framework = "react"
 }
</script>

<div>
  <!-- listening the custom event -->
  <Name on:changename={handleChange} name={framework} /></div>

How to pass arguments to custom events?

We can also pass arguments to the custom events and access it from the parent component.

Let’s add an argument to our changename custom event.

Name.svelte
<script>
  import { createEventDispatcher } from "svelte";
  export let name;
  let dispatch = createEventDispatcher();

  function myCustom() {
    dispatch("changename", {
      name: "Angular" //passing argument    });
  }
</script>

<div>
  <h1>{name}</h1>
  <button on:click={myCustom}>Change Name</button>
</div>

To access the argument inside the parent component we need to use event object.

App.svelte
<script>
  import Name from "./Name.svelte";
  let framework = "svelte";

  function handleChange(event) {
      //accessing the argument    framework = event.detail.name;
  }
</script>

<div>
  <!-- listening the custom event -->
  <Name on:changename={handleChange} name={framework} />
</div>

Css Tutorials & Demos

How rotate an image continuously in CSS

In this demo, we are going to learn about how to rotate an image continuously using the css animations.

How to create a Instagram login Page

In this demo, i will show you how to create a instagram login page using html and css.

How to create a pulse animation in CSS

In this demo, i will show you how to create a pulse animation using css.

Creating a snowfall animation using css and JavaScript

In this demo, i will show you how to create a snow fall animation using css and JavaScript.

Top Udemy Courses

JavaScript - The Complete Guide 2023 (Beginner + Advanced)
JavaScript - The Complete Guide 2023 (Beginner + Advanced)
116,648 students enrolled
52 hours of video content
$14.99 FROM UDEMY
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
631,582 students enrolled
49 hours of video content
$24.99 FROM UDEMY
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
203,937 students enrolled
31.5 hours of video content
$14.99 FROM UDEMY