Updating props using derived states
In an attempt to synchronize the value prop with changes to the input bound to triple, one might be tempted to add another reactive declaration. This declaration would update the value prop to be one-third of triple whenever triple changes. Here is the proposed modification:
<script>
  export let value;
  $: double = value * 2;
  $: triple = value * 3;
  $: value = double / 2;
  $: value = triple / 3;
</script>
<input bind:value={double} type="number" />
<input bind:value={triple} type="number" /> As we discussed earlier, it’s best practice to maintain a one-way data flow for derived states to simplify debugging and data management. Indeed, the Svelte compiler flags the preceding code snippet for cyclical dependencies. This is because double is derived from value, and value is in turn dependent on double.
However, Svelte’s compiler...