如何在 Svelte 中跨多行进行反应式分配?

Eva*_*ers 3 svelte

在 Svelte 中,分配从某些 props 或 state 反应式计算的变量是很常见的,如下所示:

    export let x: number
    export let y: number
    $: sum = x + y
Run Code Online (Sandbox Code Playgroud)

当我的反应比 复杂得多时,它的多行形式是什么样的x + y

Jax*_*axx 5

我总是建议将稍微复杂(或更糟糕,显然)的操作放入其自己的函数中,然后使用您希望操作对其做出反应的变量来调用该函数。它将提高可读性和可重用性并阐明意图。

我还鼓励尽可能使这些函数变得纯粹(即没有副作用),但这并不总是可能的。

举例来说,而不是像这样:

$: {
    ...multi-line complex operation on x and y setting value z...
}
Run Code Online (Sandbox Code Playgroud)

我会这样做:

function complexOperation(a, b) {
  ...multi-line complex operation on a and b setting value c...
  return c
}

$: z = complexOperation(x, y)
Run Code Online (Sandbox Code Playgroud)

我尝试将所有反应性陈述保留在俏皮话中,否则我会将它们移至其自己的功能中,但我明白这是个人偏好。