@@ -48,7 +48,7 @@ Vue には [Web Components spec draft](https://github.com/w3c/webcomponents/blob
4848<todo-button >
4949 <!-- コンポーネントを使ってアイコンを追加 -->
5050 <font-awesome-icon name =" plus" ></font-awesome-icon >
51- Your Profile
51+ Add todo
5252</todo-button >
5353```
5454
@@ -100,7 +100,6 @@ Vue には [Web Components spec draft](https://github.com/w3c/webcomponents/blob
100100
101101> 親のテンプレート内の全てのものは親のスコープでコンパイルされ、子のテンプレート内の全てのものは子のスコープでコンパイルされる。
102102
103-
104103## フォールバックコンテンツ
105104
106105スロットに対して、コンテンツがない場合にだけ描画されるフォールバック (つまり、デフォルトの) コンテンツを指定すると便利な場合があります。例えば、` <submit-button> ` コンポーネントにおいて:
@@ -222,7 +221,8 @@ Vue には [Web Components spec draft](https://github.com/w3c/webcomponents/blob
222221 </footer >
223222</div >
224223```
225- ** ` v-slot ` は([ 一つの例外] ( #デフォルトスロットしかない場合の省略記法 ) を除き) ` <template> ` にしか指定できないことに注意してください。
224+
225+ ** ` v-slot ` は([ 一つの例外] ( #デフォルトスロットしかない場合の省略記法 ) を除き) ` <template> ` にしか指定できないことに注意してください。
226226
227227## スコープ付きスロット
228228
@@ -247,8 +247,7 @@ app.component('todo-list', {
247247})
248248```
249249
250- 親コンポーネントでこれをカスタマイズするために、スロットに交換してもよいでしょう:
251-
250+ 親コンポーネントでこれをカスタマイズするために、<span v-pre >` {{ item }} ` </span > を ` <slot> ` に置き換えたい場合があります:
252251
253252``` html
254253<todo-list >
@@ -259,23 +258,33 @@ app.component('todo-list', {
259258
260259しかし、これは動作しません。というのも、 ` item ` にアクセスすることができるのは ` <todo-list> ` コンポーネントだけですが、ここで指定しているコンテンツは親コンポーネントで描画されるからです。
261260
262- 親コンポーネント内でスロットコンテンツとして ` item ` を使えるようにするためには、これを ` <slot> ` 要素の属性としてバインドします :
261+ 親コンポーネント内でスロットコンテンツとして ` item ` を使えるようにするためには、これを ` <slot> ` 要素の属性として束縛します :
263262
264263``` html
265264<ul >
266265 <li v-for =" ( item, index ) in items" >
267- <slot v-bind :item =" item" ></slot >
266+ <slot :item =" item" ></slot >
268267 </li >
269268</ul >
270269```
271270
272- ` <slot> ` 要素にバインドされた属性は、 ** スロットプロパティ** と呼ばれます。これで、親スコープ内で ` v-slot ` に値を指定して、渡されたスロットプロパティの名前を定義できます:
271+ 必要な数の属性を ` slot ` に束縛できます:
272+
273+ ``` html
274+ <ul >
275+ <li v-for =" ( item, index ) in items" >
276+ <slot :item =" item" :index =" index" :another-attribute =" anotherAttribute" ></slot >
277+ </li >
278+ </ul >
279+ ```
280+
281+ ` <slot> ` 要素に束縛された属性は、 ** スロットプロパティ** と呼ばれます。これで、親スコープ内で ` v-slot ` に値を指定して、渡されたスロットプロパティの名前を定義できます:
273282
274283``` html
275284<todo-list >
276285 <template v-slot:default =" slotProps" >
277286 <i class =" fas fa-check" ></i >
278- <span class =" green" >{{ slotProps.item }}<span >
287+ <span class =" green" >{{ slotProps.item }}</ span >
279288 </template >
280289</todo-list >
281290```
@@ -291,7 +300,7 @@ app.component('todo-list', {
291300``` html
292301<todo-list v-slot:default =" slotProps" >
293302 <i class =" fas fa-check" ></i >
294- <span class =" green" >{{ slotProps.item }}<span >
303+ <span class =" green" >{{ slotProps.item }}</ span >
295304</todo-list >
296305```
297306
@@ -300,7 +309,7 @@ app.component('todo-list', {
300309``` html
301310<todo-list v-slot =" slotProps" >
302311 <i class =" fas fa-check" ></i >
303- <span class =" green" >{{ slotProps.item }}<span >
312+ <span class =" green" >{{ slotProps.item }}</ span >
304313</todo-list >
305314```
306315
@@ -309,10 +318,9 @@ app.component('todo-list', {
309318``` html
310319<!-- 不正。警告が出ます -->
311320<todo-list v-slot =" slotProps" >
312- <todo-list v-slot:default =" slotProps" >
313- <i class =" fas fa-check" ></i >
314- <span class =" green" >{{ slotProps.item }}<span >
315- </todo-list >
321+ <i class =" fas fa-check" ></i >
322+ <span class =" green" >{{ slotProps.item }}</span >
323+
316324 <template v-slot:other =" otherSlotProps" >
317325 slotProps is NOT available here
318326 </template >
@@ -325,13 +333,13 @@ app.component('todo-list', {
325333<todo-list >
326334 <template v-slot:default =" slotProps" >
327335 <i class =" fas fa-check" ></i >
328- <span class =" green" >{{ slotProps.item }}<span >
336+ <span class =" green" >{{ slotProps.item }}</ span >
329337 </template >
330338
331339 <template v-slot:other =" otherSlotProps" >
332340 ...
333341 </template >
334- </current-user >
342+ </todo-list >
335343```
336344
337345### スロットプロパティの分割代入
@@ -358,7 +366,7 @@ function (slotProps) {
358366``` html
359367<todo-list v-slot =" { item: todo }" >
360368 <i class =" fas fa-check" ></i >
361- <span class =" green" >{{ todo }}<span >
369+ <span class =" green" >{{ todo }}</ span >
362370</todo-list >
363371```
364372
@@ -387,7 +395,6 @@ function (slotProps) {
387395
388396` v-on ` や ` v-bind ` と同様に ` v-slot ` にも省略記法があり、引数の前のすべての部分 (` v-slot: ` ) を特別な記号 ` # ` で置き換えます。例えば、` v-slot:header ` は ` #header ` に書き換えることができます:
389397
390-
391398``` html
392399<base-layout >
393400 <template #header >
0 commit comments