- 基本步骤:
- 设置上下文数据:在父组件中使用
setContext
函数来设置上下文数据。setContext
函数来自 svelte/store
。
- 接收上下文数据:子组件通过
getContext
函数来获取父组件设置的上下文数据。同样,getContext
函数也来自 svelte/store
。
- 事件派发:子组件可以通过
createEventDispatcher
创建一个事件派发器,然后使用该派发器向父组件发送事件,父组件可以监听这些事件来获取子组件反馈的数据。
- 代码示例:
<script>
import { setContext } from'svelte/store';
import Child from './Child.svelte';
const sharedData = { message: 'Hello from parent' };
setContext('sharedContext', sharedData);
const handleChildEvent = (data) => {
console.log('Received from child:', data);
};
</script>
<Child on:childEvent={handleChildEvent}/>
<script>
import { getContext } from'svelte/store';
const sharedContext = getContext('sharedContext');
const dispatch = createEventDispatcher();
const sendDataToParent = () => {
const dataToSend = { response: 'Hello from child' };
dispatch('childEvent', dataToSend);
};
</script>
<button on:click={sendDataToParent}>Send data to parent</button>
<p>{sharedContext.message}</p>