svelte 및 sveltekit을 사용하여 토스트 구성 요소 만들기
자원:
I have learnt everything from above mentioned resources so if you wanna better understand everything in detail please check them out.
소개
이 기사에서는 svelte store의 몇 가지 기본 사항을 포함하고 알림/토스트 구성 요소를 만들 것입니다.
Svelte/상점
svelte/store
모듈은 readable
, writable
및 derived
상점을 만드는 기능을 내보냅니다. $store
구문으로 액세스하거나 store contract
을 사용하여 액세스할 수 있습니다. 쓰기 가능한 저장소
store = writable(value?: any)
// import writable from svelte store
import { writable } from 'svelte/store';
// Assign a variable to store
const count = writable(0);
// Adding subscribers to store
count.subscribe(value => {
console.log(value);
}); // logs '0'
// Setting a new value to store
count.set(1); // logs '1'
// Updating store using set value
count.update(n => n + 1); // logs '2'
읽기 가능
store = readable(value?: any, start?: (set: (value: any) => void) => () => void)
이것이 우리가 읽을 수 있는 저장소를 만드는 방법입니다.
const time = readable(null, set => {
set(new Date());
const interval = setInterval(() => {
set(new Date());
}, 1000);
return () => clearInterval(interval);
});
파생 상점
import { derived } from 'svelte/store';
const doubled = derived(number, $number => $number * 2);
보시다시피 저장소
number
를 사용하고 반환된 값은 두 배이므로 숫자가 변경되면 파생된 저장소도 변경됩니다.This is some basic understanding of svelte stores now we gonna use svelte store to make a notification/toast component.
토스트 구성 요소
// lib/notification.ts
import { writable } from 'svelte/store'
type Notification = string
export const notifications = writable<Notification[]>([])
export function toast(message: string) {
notifications.update((state) => [message, ...state])
setTimeout(removeToast, 2000)
}
function removeToast() {
notifications.update((state) => {
return [...state.slice(0, state.length - 1)]
})
}
<script lang="ts">
import { fade } from 'svelte/transition'
import { notifications } from './notifications'
</script>
{#if $notifications}
<div class="notifications">
{#each $notifications as notification}
<div
role="alert"
class="notification"
transition:fade
>
{notification}
</div>
{/each}
</div>
{/if}
Above we are looping through are notification store and displaying the available notifications on the screen.
<script lang="ts">
import Toast from './toast.svelte'
import { toast } from './notifications'
</script>
<Toast />
<button on:click={() => toast('🔥 Svelte is fire')}>
Show notification
</button>
Above we imported our toast component and toast method from notification to update the store and displaying the toast.
매장 설명을 위한 기본 건배이며, 건배에 대한 심도 있는 설명이 담긴 제임스 큐 퀵의 영상 튜토리얼을 활용하실 수 있습니다.
이것은 내가 당신을 위해 쓰는 것입니다. 묻고 싶은 것이나 제안하고 싶은 것이 있다면 댓글에 적어주세요.
늦게 게시하는 이유
이 글을 쓰면서 이 노래를 반복해서 들었습니다 😂
Reference
이 문제에 관하여(svelte 및 sveltekit을 사용하여 토스트 구성 요소 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theether0/making-a-toast-component-in-svelte-and-sveltekit-4gpj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)