File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -146,6 +146,8 @@ watchEffect(() => {
146146})
147147```
148148
149+ IDE 上で分割代入された props と通常の変数をより視覚的に区別したい場合、Vue の VSCode 拡張機能には、分割代入された props にインレイヒントを表示する設定があります。
150+
149151さらに、JavaScript のネイティブなデフォルト値構文を使用して、props のデフォルト値を宣言できます。これは型ベースの props 宣言を使用する場合に特に便利です:
150152
151153``` ts
@@ -154,6 +156,30 @@ const { foo = 'hello' } = defineProps<{ foo?: string }>()
154156
155157### 関数への分割代入 props 渡し
156158
159+ 分割代入された props を関数に渡す場合、例えば:
160+
161+ ``` js
162+ const { foo } = defineProps ([' foo' ])
163+
164+ watch (foo, /* ... */ )
165+ ```
166+
167+ これは期待通りに動作しません。なぜなら、これは ` watch(props.foo, ...) ` と同等であり、リアクティブなデータソースではなく値を ` watch ` に渡しているからです。実際、Vue のコンパイラーはこのような場合を検出し、警告を発します。
168+
169+ 通常の props を ` watch(() => props.foo, ...) ` と監視できるのと同様に、分割代入された props もゲッターでラップすることで監視できます:
170+
171+ ``` js
172+ watch (() => foo, /* ... */ )
173+ ```
174+
175+ さらに、リアクティビティを保持しながら分割代入された props を外部関数に渡す必要がある場合、これが推奨されるアプローチです:
176+
177+ ``` js
178+ useComposable (() => foo)
179+ ```
180+
181+ 外部関数は、提供された props の変更を追跡する必要がある場合(例えば、computed や watcher のゲッター内で)、ゲッターを呼び出す(もしくは [ toValue] ( /api/reactivity-utilities.html#tovalue ) で正規化する)ことができます。
182+
157183</div >
158184
159185## props 渡しの詳細 {#prop-passing-details}
You can’t perform that action at this time.
0 commit comments