Skip to content

Commit e9c12ed

Browse files
potato4dinouetakuya
authored andcommitted
v2.2アップデートにおけるsrc/v2/guide/components.mdの変更の翻訳 (#229)
* 原文を取り込んでソースコードのみ先に更新 * 翻訳初稿
1 parent 1776e13 commit e9c12ed

File tree

1 file changed

+49
-13
lines changed

1 file changed

+49
-13
lines changed

src/v2/guide/components.md

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -543,13 +543,18 @@ new Vue({
543543
は、以下の糖衣構文です:
544544

545545
``` html
546-
<input v-bind:value="something" v-on:input="something = $event.target.value">
546+
<input
547+
v-bind:value="something"
548+
v-on:input="something = $event.target.value">
547549
```
548550

549551
コンポーネントと共に使用されるとき、これは簡単にできます:
550552

551553
``` html
552-
<custom-input v-bind:value="something" v-on:input="something = arguments[0]"></custom-input>
554+
<custom-input
555+
:value="something"
556+
@input="value => { something = value }">
557+
</custom-input>
553558
```
554559

555560
そのため、コンポーネントを `v-model` と共に動かすためには、以下が必要です:
@@ -565,16 +570,15 @@ new Vue({
565570

566571
``` js
567572
Vue.component('currency-input', {
568-
template: '\
569-
<span>\
570-
$\
571-
<input\
572-
ref="input"\
573-
v-bind:value="value"\
574-
v-on:input="updateValue($event.target.value)"\
575-
>\
576-
</span>\
577-
',
573+
template: `
574+
<span>
575+
$
576+
<input
577+
ref="input"
578+
v-bind:value="value"
579+
v-on:input="updateValue($event.target.value)">
580+
</span>
581+
`,
578582
props: ['value'],
579583
methods: {
580584
// 値を直接的に更新する代わりに、このメソッドを使用して input の
@@ -637,7 +641,39 @@ new Vue({
637641

638642
<iframe width="100%" height="300" src="https://jsfiddle.net/chrisvfritz/1oqjojjx/embedded/result,html,js" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
639643

640-
イベントインターフェイスは、より特殊な入力フィールドを作成するために使用することもできます。例えば、次のような可能性を想像してみてください:
644+
### コンポーネントの `v-model` のカスタマイズ
645+
646+
> 2.2.0 の新機能
647+
648+
デフォルトでは、コンポーネントにおける `v-model` は、 `value` を prop として、 `input` をイベントして用います。しかし、チェックボックスやラジオボタンなどの入力タイプを利用する場合は、 `value` prop をその他の目的で利用することができます。その際、 `model` オプションを利用することで、値の競合を避けることが可能です:
649+
650+
``` js
651+
Vue.component('my-checkbox', {
652+
model: {
653+
prop: 'checked',
654+
event: 'change'
655+
},
656+
props: {
657+
// これによって、 `value` prop を別の目的で利用することを許可します。
658+
value: String
659+
},
660+
// ...
661+
})
662+
```
663+
664+
``` html
665+
<my-checkbox v-model="foo" value="some value"></my-checkbox>
666+
```
667+
668+
The above will be equivalent to:
669+
670+
``` html
671+
<my-checkbox
672+
:checked="foo"
673+
@change="val => { foo = val }"
674+
value="some value">
675+
</my-checkbox>
676+
```
641677

642678
``` html
643679
<voice-recognizer v-model="question"></voice-recognizer>

0 commit comments

Comments
 (0)