diff --git a/src/v2/api/index.md b/src/v2/api/index.md
index bebd1409d..0d1eace86 100644
--- a/src/v2/api/index.md
+++ b/src/v2/api/index.md
@@ -1,7 +1,7 @@
---
title: API
type: api
-updated: 2019-01-29
+updated: 2019-02-18
---
## グローバル設定
@@ -85,6 +85,8 @@ updated: 2019-01-29
> 2.4.0 以降では、このフックは Vue のカスタムイベントハンドラ内部で投げられたエラーもキャプチャします。
+ > 2.6.0 以降では、このフックは `v-on` DOM リスナ内で投げられたエラーもキャプチャします。加えて、フックやハンドラが Promise チェーン (例えば、async 関数) を返す場合、その Promise チェーンからのエラーもハンドリングされます。
+
> エラー追跡サービスの [Sentry](https://sentry.io/for/vue/) と [Bugsnag](https://docs.bugsnag.com/platforms/browsers/vue/) はこのオプションを使用して公式の統合を提供しています。
### warnHandler
@@ -404,6 +406,35 @@ updated: 2019-01-29
- **参照:** [描画関数](../guide/render-function.html)
+### Vue.observable( object )
+
+> 2.6.0 から新規
+
+- **引数:**
+ - `{Object} object`
+
+- **使用方法:**
+
+ オブジェクトをリアクティブにします。内部的には、Vue は `data` 関数から返されたオブジェクトに対してこれを使っています。
+
+ 戻り値のオブジェクトは、[描画関数](../guide/render-function.html) や [算出プロパティ](../guide/computed.html) の中で直接使え、値が変更されたときには適切な更新をトリガーします。単純なシナリオでは、コンポーネントをまたぐ最小の state ストアとして使用することもできます:
+
+ ``` js
+ const state = Vue.observable({ count: 0 })
+
+ const Demo = {
+ render(h) {
+ return h('button', {
+ on: { click: () => { state.count++ }}
+ }, `count is: ${state.count}`)
+ }
+ }
+ ```
+
+
Vue 2.x では、`Vue.observable` は渡されたオブジェクトを直接操作するため、[ここでデモされる](../guide/instance.html#データとメソッド) ように戻り値のオブジェクトと等しくなります。Vue 3.x では、代わりにリアクティブプロキシを返し、元のオブジェクトを直接変更してもリアクティブにならないようにします。そのため、将来の互換性を考えると、`Vue.observable` に渡したオブジェクトではなく、返されたオブジェクトを使うことを推奨します。
+
+- **参照:** [リアクティブの探求](../guide/reactivity.html)
+
### Vue.version
- **詳細:** インストールされている Vue のバージョンを文字列として提供します。これはコミュニティのプラグインやコンポーネントで特に役立ち、異なるバージョンで違う戦略を使うことができます。
@@ -1347,7 +1378,7 @@ updated: 2019-01-29
- **デフォルト:**
- プログラム的に[スロットにより配信された](/guide/components.html#スロットによるコンテンツ配信)コンテンツにアクセスするために使用されます。各[名前付きスロット](/guide/components.html#名前付きスロット) は自身に対応するプロパティを持ちます (例: `slot="foo"` のコンテンツは `vm.$slots.foo` で見つかります)。`default` プロパティは名前付きスロットに含まれない任意のノードを含みます。
+ プログラム的に[スロットにより配信された](/guide/components.html#スロットによるコンテンツ配信)コンテンツにアクセスするために使用されます。各[名前付きスロット](../guide/components-slots.html#名前付きスロット) は自身に対応するプロパティを持ちます (例: `slot="foo"` のコンテンツは `vm.$slots.foo` で見つかります)。`default` プロパティは名前付きスロットに含まれない任意のノードを含みます。
`vm.$slots` のアクセスは、[描画関数](/guide/render-function.html) によるコンポーネントを書くときに最も便利です。
@@ -1393,19 +1424,25 @@ updated: 2019-01-29
> 2.1.0 から新規
-- **型:** `{ [name: string]: props => VNode | Array }`
+- **型:** `{ [name: string]: props => Array | undefined }`
- **読み込みのみ**
- **詳細:**
- [スコープ付きスロット (scoped slot)](../guide/components.html#スコープ付きスロット)にプログラムでアクセスするために使用されます。`default` を含む各スロットに対して、オブジェクトには VNode を返す対応する関数が含まれています。
+ [スコープ付きスロット](../guide/components-slots.html#スコープ付きスロット) にプログラムでアクセスするために使用されます。`default` を含む各スロットに対して、オブジェクトには VNode を返す対応する関数が含まれています。
`vm.$scopedSlots` にアクセスする際に、[描画関数](../guide/render-function.html) でコンポーネントを書くときに最も便利です。
-- **See also:**
- - [`` コンポーネント](#slot-1)
- - [スコープ付きスロット](../guide/components.html#スコープ付きスロット)
+ **注意:** 2.6.0 以降では、このプロパティに特筆すべき変更が 2 つあります:
+
+ 1. スコープ付きスロット関数は、戻り値が不正でない限り (この場合は `undefined` を返す) VNode の配列を返すことが保証されるようになりました。
+
+ 2. すべての `$slots` は `$scopedSlots` にも関数として公開されるようになりました。描画関数を使う場合、今後はスコープ付きを使うかどうかに関係なく、常に `$scopedSlots` 経由でスロットにアクセスすることを推奨します。これは、将来スコープを追加するリファクタリングをシンプルにするだけでなく、すべてのスロットが関数になる Vue 3 への移行を簡単にします。
+
+- **参照:**
+ - [`` コンポーネント](#slot)
+ - [スコープ付きスロット](../guide/components-slots.html#スコープ付きスロット)
- [描画関数 - スロット](../guide/render-function.html#スロット)
### vm.$refs
@@ -1950,7 +1987,7 @@ updated: 2019-01-29
### v-for
-- **要求事項:** `Array | Object | number | string`
+- **要求事項:** `Array | Object | number | string | Iterable (2.6 以降)`
- **使用方法:**
@@ -1978,6 +2015,8 @@ updated: 2019-01-29
```
+ 2.6 以降では、`v-for` はネイティブの `Map` や `Set`を含む、[Iterable プロトコル](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) を実装した値でも動作できるようになりました。ただし、Vue 2.x は今のところ `Map` 値や `Set` 値をリアクティブにはできず、変更を自動的に検知できない点は注意しておく必要があります。
+
`v-if` といっしょに使用されるとき、`v-for` は `v-if` より優先度が高くなります。詳細についてはリストレンダリングのガイドを参照してください。
`v-for` の詳細な使用方法は下記にリンクしたガイドセクション内で説明しています。
@@ -2023,12 +2062,18 @@ updated: 2019-01-29
+
+
+
+
+
+
@@ -2100,9 +2145,15 @@ updated: 2019-01-29
+
+
+
+
+
+
@@ -2167,6 +2218,59 @@ updated: 2019-01-29
- [フォーム入力バインディング](../guide/forms.html)
- [コンポーネント - カスタムイベントを使用してフォーム入力コンポーネント](../guide/components.html#カスタムイベントを使用したフォーム入力コンポーネント)
+### v-slot
+
+- **省略記法:** `#`
+
+- **要求事項:** 関数定義の引数部分で有効な JavaScript 式 ([サポートされている環境](../guide/components-slots.html#スロットプロパティの分割代入) では分割代入も使用可能)。省略可 - プロパティがスロットに渡される場合のみ必要。
+
+- **引数:** スロット名 (省略可。デフォルト値 `default`)
+
+- **適用対象制限:**
+ - ``
+ - [コンポーネント](../guide/components-slots.html#デフォルトスロットしかない場合の省略記法) (デフォルトスロットしかない場合)
+
+- **使用方法:**
+
+ 名前付きスロットあるいはプロパティを受け取るスロットとなることを示します。
+
+- **例:**
+
+ ```html
+
+
+
+ Header content
+
+
+ Default slot content
+
+
+ Footer content
+
+
+
+
+
+
+
+ {{ slotProps.item.text }}
+
+
+
+
+
+
+ Mouse position: {{ x }}, {{ y }}
+
+ ```
+
+ 詳細は、以下のリンクを参照してください。
+
+- **参照:**
+ - [スロット](../guide/components-slots.html)
+ - [RFC-0001](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md)
+
### v-pre
- **式を受け付けません**
@@ -2286,61 +2390,63 @@ updated: 2019-01-29
- **参照:** [子コンポーネントの参照](../guide/components.html#子コンポーネントの参照)
-### slot
+### is
-- **要求事項:** `string`
+- **要求事項:** `string | Object (コンポーネントオプションのオブジェクト)`
- 名前付き slot のコンテンツが属しているというのを示すために、コンテンツを子コンポーネントに挿入するために使用されます。
+ [動的コンポーネント](../guide/components.html#動的コンポーネント)と [DOM テンプレートの制限](../guide/components.html#DOM-テンプレート解析の注意事項)を回避するために使用します。
- 詳しい使い方については、以下のリンク先のガイドを参照してください。
+ 例:
-- **参照:** [名前付きスロット](../guide/components.html#名前付きスロット)
+ ``` html
+
+
-### slot-scope
+
+
+ ```
-> 2.5.0 から新規
+ 詳しい使用方法については、上記のリンクを参照してください。
-- **要求事項:** `function argument expression`
+- **参照:**
+ - [動的コンポーネント](../guide/components.html#動的コンポーネント)
+ - [DOM-テンプレート解析の注意事項](../guide/components.html#DOM-テンプレート解析の注意事項)
-- **使用方法:**
+### slot 非推奨
- 要素またはコンポーネントをスコープ付きスロットとして示すときに使用します。属性の値は、関数シグネチャの引数位置に表示できる有効な JavaScript 式が必要です。これは、式で ES2015 destructuring (分割代入)を使用できる環境をサポートすることを意味します。2.5.0以降で [`scope`](#scope-置き換え)の代わりとして提供されています。
+**2.6.0 以降では [v-slot](#v-slot) を使うこと**
- この属性は動的なバインディングはサポートしません。
+- **要求事項:** `string`
-- **参照:** [スコープ付きスロット](../guide/components.html#スコープ付きスロット)
+ 子コンポーネントに挿入されるコンテンツに対して、どの名前付きスロットのコンテンツになるかを示すために使われます。
-### scope 置き換え
+- **参照:** [`slot` 属性による名前付きスロット](../guide/components-slots.html#slot-属性による名前付きスロット)
- スコープ付きスロットとして `` 要素を表すのに使われ、2.5.0以降では [`slot-scope`](#slot-scope)に置き換えられます。
+### slot-scope 非推奨
-- **使用方法:**
+**2.6.0 以降では [v-slot](#v-slot) を使うこと**
- [``](#slot-scope)と同じですが、`scope`は `` 要素に対してのみ使用できます。
+- **要求事項:** `function argument expression`
-### is
+- **使用方法:**
-- **要求事項:** `string | Object (コンポーネントオプションのオブジェクト)`
+ 要素またはコンポーネントがスコープ付きスロットとなることを示すために使われます。属性の値は、関数シグネチャの引数部分で有効な JavaScript 式となる必要があります。これは、サポートされている環境では式に ES2015 の分割代入が使えることを意味します。2.5.0 以降では、[`scope`](#scope-削除) を置き換えます。
- [動的コンポーネント](../guide/components.html#動的コンポーネント)と [DOM テンプレートの制限](../guide/components.html#DOM-テンプレート解析の注意事項)を回避するために使用します。
+ この属性は、動的なバインディングはサポートしません。
- 例:
+- **参照:** [`slot-scope` 属性によるスコープ付きスロット](../guide/components-slots.html#slot-scope-属性によるスコープ付きスロット)
- ``` html
-
-
+### scope 削除
-
-
- ```
+**2.5.0 以降では [slot-scope](#slot-scope-非推奨) で置き換え。2.6.0 以降では [v-slot](#v-slot) を使うこと**
- 詳しい使用方法については、上記のリンクを参照してください。
+`` 要素がスコープ付きスロットとなることを示すために使われます。
-- **See also:**
- - [動的コンポーネント](../guide/components.html#動的コンポーネント)
- - [DOM-テンプレート解析の注意事項](../guide/components.html#DOM-テンプレート解析の注意事項)
+- **使用方法:**
+
+ [`slot-scope`](#slot-scope-非推奨) と同じですが、`scope` は `` 要素に対してのみ使用できます。
## 組み込みコンポーネント
diff --git a/src/v2/guide/components-slots.md b/src/v2/guide/components-slots.md
index 99b72c7a2..65ef455e9 100644
--- a/src/v2/guide/components-slots.md
+++ b/src/v2/guide/components-slots.md
@@ -1,16 +1,19 @@
---
title: スロット
type: guide
-updated: 2019-02-04
+updated: 2019-02-16
order: 104
---
> このページは [コンポーネントの基本](components.html) を読まれていることが前提になっています。コンポーネントを扱った事のない場合はこちらのページを先に読んでください。
+> バージョン 2.6.0 で、名前付きスロットとスコープ付きスロットに対する新しい統一構文 (`v-slot` ディレクティブ) が導入されました。`slot` および `slot-scope` 属性は非推奨となり置き換えられますが、まだ削除は _されず_ 、ドキュメントも [ここ](#非推奨の構文) にあります。新しい構文を導入する理由は、この [RFC](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md) に記述されています。
+
+
## スロットコンテンツ
-Vue は現在の [Web Components spec draft](https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md) にならったコンテンツ配信 API が実装されており、 `` 要素をコンテンツ配信の受け渡し口として利用します。
+Vue には [Web Components spec draft](https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md) にヒントを得たコンテンツ配信 API が実装されており、 `` 要素をコンテンツ配信の受け渡し口として利用します。
これを使うことで次のようなコンポーネントを作成することが出来ます:
@@ -31,7 +34,7 @@ Vue は現在の [Web Components spec draft](https://github.com/w3c/webcomponent
```
-コンポーネントを描画する時、 `` 要素は「Your Profile」に置換されるでしょう。スロットには HTML を含む任意のテンプレートを入れることが出来ます:
+コンポーネントを描画する時、 `` は「Your Profile」に置換されるでしょう。スロットには HTML を含む任意のテンプレートを入れることが出来ます:
``` html
@@ -51,11 +54,88 @@ Vue は現在の [Web Components spec draft](https://github.com/w3c/webcomponent
```
-もし `` が `` 要素を含んで**いない**場合、どんなコンテンツが渡されてもただ破棄されるでしょう。
+もしも `` のテンプレートが `` 要素を含ま **ない** 場合、開始タグと終了タグの間にある任意のコンテンツは破棄されます。
+
+## コンパイルスコープ
+
+スロットの中でデータを扱いたい場合はこうします:
+
+``` html
+
+ Logged in as {{ user.name }}
+
+```
+
+このスロットは、テンプレートの残りの部分と同じインスタンスプロパティ (つまり、同じ "スコープ") にアクセスできます。`` のスコープにアクセスすることは **できません**。例えば、`url` へのアクセスは動作しないでしょう:
+
+``` html
+
+ Clicking here will send you to: {{ url }}
+
+
+```
+
+ルールとしては、以下を覚えておいてください:
+
+> 親テンプレート内の全てのものは親のスコープでコンパイルされ、子テンプレート内の全てものは子のスコープでコンパイルされる。
+
+## フォールバックコンテンツ
+
+スロットに対して、コンテンツがない場合にだけ描画されるフォールバック (つまり、デフォルトの) コンテンツを指定すると便利な場合があります。例えば、`` コンポーネントにおいて:
+
+```html
+
+```
+
+ほとんどの場合には `