コンテンツにスキップ

CORRECT004 · 変更されない $state

重大度: info · カテゴリ: correctness

コンポーネント内のどこでも書き込み・エスケープされない let x = $state(...) を検出します — 再代入なし、変更なし(x.a = …x.push())、バインドなし(bind:value={x})、関数やコンポーネントへの受け渡しなしのものです。コンポーネントのスクリプトとテンプレートを静的(CLI)解析します。

変更されない $state は、使わないリアクティビティ(deep proxy と依存追跡)のコストを払っています。const の方が明確で軽量です。値をまるごと差し替えるだけ(プロパティは変更しない)なら $state.raw が適します。

<script>
// let title = $state('Dashboard'); の代わりに
const title = 'Dashboard';
// まるごと差し替えるが deep mutate しないなら $state.raw:
let data = $state.raw(initial);
data = nextValue;
</script>