思路
- 在Svelte中,可以利用
createEventDispatcher
来创建事件分发器。
- 从A组件开始,将一个处理函数作为prop传递给B组件,B组件再将这个函数作为prop传递给C组件。
- C组件通过事件分发器触发事件,并传递数据,这个事件最终由A组件的处理函数来接收和处理。
代码示例
- A.svelte
<script>
import B from './B.svelte';
const handleCustomEvent = (data) => {
console.log('Received data from C:', data);
};
</script>
<B onCustomEvent={handleCustomEvent} />
- B.svelte
<script>
import C from './C.svelte';
export let onCustomEvent;
</script>
<C onCustomEvent={onCustomEvent} />
- C.svelte
<script>
import { createEventDispatcher } from'svelte';
const dispatch = createEventDispatcher();
const sendData = () => {
const data = { message: 'Hello from C' };
dispatch('customEvent', data);
};
</script>
<button on:click={sendData}>Send data to A</button>