【发布时间】:2023-02-21 05:18:50
【问题描述】:
import { getContext } from 'svelte';Svelte Context 和 Svelte Store 之间的确切区别是什么?什么时候在不同情况下使用?
import {writable} from 'svelte/store';
【问题讨论】:
标签: svelte
import { getContext } from 'svelte';Svelte Context 和 Svelte Store 之间的确切区别是什么?什么时候在不同情况下使用?
import {writable} from 'svelte/store';
【问题讨论】:
标签: svelte
上下文是在组件层次结构中继承的数据。商店通过订阅系统封装反应性。
上下文对于使数据可用于应用程序的大部分(例如本地化数据或当前用户信息)很有用,而无需在每个级别都通过道具传递。这允许不“知道”上下文的组件存在于两者之间而不会受到干扰,例如第三方组件。
Stores 允许反应性通过组件边界。例如。 Svelte 不会捕获常规 JS/TS 文件中变量的更改。通过传递商店,组件可以订阅更改(通过 $ 语法)并自动更新。
默认情况下,上下文也不是反应式的,因此通过上下文传递存储通常也很有意义。
【讨论】:
在我看来,上下文就像是带有类固醇的道具,这意味着祖先可以将数据共享到任何深层嵌套的组件。我认为此功能也是反应的一部分。
另一方面,商店是无所不能的上帝的背景。它可用于在组件树的任何级别共享数据。
【讨论】: