我需要将数据从父组件传递到所有子组件,可能是3-4级。为此使用事件不是一个非常优雅的解决方案。
是否有一种方法可以定义一个可供组件的所有子组件访问的全局变量?
我也不想使用仿射词,因为会有很多重复。
发布于 2020-09-23 11:50:42
正是由于这个问题,ContextAPI
才包含在Svelte中。
在你的“父母”身上
import { setContext } from 'svelte'
setContext('my-var', variable)
在任何你需要它的孩子身上,你都能做到:
import { getContext } from 'svelte'
const variable = getContext('my-var')
这种技术使my变量在所有的后代中。
请注意,如果需要传递存储而不是常规变量,则此变量是而不是反应性变量。
这是在文档中
发布于 2020-09-23 10:35:46
您可以使用<script context="module">
当模块第一次计算时,带有
context="module"
属性的context="module"
标记只运行一次,而不是针对每个组件实例。在这个块中声明的值可以从常规的<script>
(和组件标记)访问,但反之亦然。
https://stackoverflow.com/questions/64023421
复制相似问题