面试题答案
一键面试- 在Svelte中使用context共享数据的原理
- Svelte提供了
setContext
和getContext
函数来在组件树中共享数据。setContext
用于设置一个上下文键值对,getContext
用于获取该上下文数据。
- Svelte提供了
- 父子组件间传递数据的实现步骤
- 父组件设置上下文数据:
<!-- Parent.svelte --> <script> import { setContext } from'svelte'; const sharedData = { message: 'Hello from parent' }; setContext('shared - key', sharedData); </script> <h1>Parent Component</h1> <Child />
- 子组件获取上下文数据:
<!-- Child.svelte --> <script> import { getContext } from'svelte'; const sharedData = getContext('shared - key'); </script> <p>{sharedData.message}</p>
- 父组件设置上下文数据:
- 非直接父子组件间传递数据的实现步骤
- 祖先组件设置上下文数据:
<!-- Ancestor.svelte --> <script> import { setContext } from'svelte'; const sharedValue = 42; setContext('shared - num - key', sharedValue); </script> <h1>Ancestor Component</h1> <Descendant />
- 后代组件获取上下文数据:
<!-- Descendant.svelte --> <script> import { getContext } from'svelte'; const sharedNumber = getContext('shared - num - key'); </script> <p>The shared number is: {sharedNumber}</p>
- 在这个例子中,
Ancestor.svelte
通过setContext
设置了上下文数据,Descendant.svelte
(它可能是Ancestor.svelte
的多级后代组件)通过getContext
获取了该上下文数据,实现了非直接父子组件间的数据传递。
- 祖先组件设置上下文数据: