建议通过prop传递的svelte中管理切换状态的推荐方法是什么?

时间:2019-10-09 15:50:32

标签: svelte

我正在Svelte中创建一个切换组件,并且我直接在子组件中修改了道具isActivehttps://svelte.dev/repl/da651280c99c471d82944985339f8551?version=3.12.1

我正在考虑以下替代方法:

  1. 调度事件以让父级修改状态
  2. 创建一个将从父级传递的prop初始化的变量

我想避开#1,因为它感觉过度杀伤力。 在#2中,基于prop初始化变量的最佳位置在哪里?

或者建议使用其他替代方法来处理这种情况(对于其他道具,例如传递搜索文本或标签列表,我也有同样的问题)?

2 个答案:

答案 0 :(得分:0)

在斯维尔特(Svelte)中,鼓励双向绑定,而直接更新道具通常是可行的方法。如果在更新某些内容时应该执行复杂的操作,则发出事件可能会更好。在这种情况下,您已经在更新道具,所以我将像这样绑定值:

<script>
    import Toggle from './Toggle.svelte';

    let someToggleValue = false;
</script>

<Toggle title="Toggle Header" bind:isActive={someToggleValue}>
     <div class="content">
        The Content
     </div>
</Toggle>

答案 1 :(得分:0)

对我来说,它来回答: 1)更改仅是外观上的吗?是=绑定到变量 2)更改将对模型数据作出努力吗?任何努力=事件 3)很奇怪,可能是设计问题