Я пытаюсь реализовать многоразовое поведение жизненного цикла в компонентах svelte.Идея состоит в том, чтобы реализовать модуль для выполнения чего-либо, когда происходят методы жизненного цикла компонента.Этот модуль будет легко импортирован в компоненты Svelte.Я подумал о следующем:
Представьте, что у меня есть несколько компонентов, и я хочу что-то зарегистрировать, когда происходят onMount и onDestroy, поэтому я мог бы просто повторить следующий код в каждом компоненте:
// Hello.svelte
<script>
import {onMount, onDestroy} from 'svelte';
onMount(()=>{
console.log('Mounted!')
});
onDestroy(()=>{
console.log('Destroyed!')
});
</script>
<h1>Hello World!<h1/>
Но, чтобы сделать это многоразовым, я хочу изолировать это поведение в модуле.Я придумал следующее:
//appendLogger.js
export default (onMount,onDestroy)=>{
onMount(()=>{
console.log('Mounted!')
});
onDestroy(()=>{
console.log('Destroyed!')
});
};
И в компонентах я мог бы использовать его так:
//Hello.svelte
<script>
import {onMount, onDestroy} from 'svelte';
import appendLogger from '../appendLogger';
appendLogger(onMount,onDestroy);
</script>
<h1>Hello World!<h1/>
и
//Goodbye.svelte
<script>
//Hello.svelte
import {onMount, onDestroy} from 'svelte';
import appendLogger from '../appendLogger';
appendLogger(onMount,onDestroy);
</script>
<h1>Goodbye World!<h1/>
Сейчасэто правильный подход?Есть ли лучший способ добиться этого?Какие предостережения?