diff --git a/src/guide/mixins.md b/src/guide/mixins.md index c9329fb2..419032c2 100644 --- a/src/guide/mixins.md +++ b/src/guide/mixins.md @@ -2,7 +2,7 @@ ## 基本 -ミックスイン (mixin) は、Vue コンポーネントに再利用可能な機能を持たせるための柔軟な方法です。ミックスインオブジェクトは任意のコンポーネントオプションを含むことができます。コンポーネントがミックスインを使用するとき、ミックスインの全てのオプションはコンポーネント自身のオプションに"混ぜられ"ます。 +ミックスイン (mixin) は、Vue コンポーネントに再利用可能な機能を提供します。ミックスインオブジェクトは任意のコンポーネントオプションを含むことができます。コンポーネントがミックスインを使用するとき、ミックスインの全てのオプションはコンポーネント自身のオプションに"混ぜられ"ます。 例: @@ -31,7 +31,7 @@ app.mount('#mixins-basic') // => "hello from mixin!" ミックスインとコンポーネントそれ自身が重複したオプションを含むとき、それらは適切なストラテジを使用して"マージ"されます。 -例えば、データオブジェクトは再帰的にマージされ、コンフリクトした場合にはコンポーネントのデータが優先されます。 +例えば、各ミックスインはそれぞれの `data` 関数を持つことができます。それぞれの関数が呼び出され、返されたオブジェクトがマージされます。コンフリクトした場合には、コンポーネント自身のデータのプロパティが優先されます。 ```js const myMixin = { @@ -213,10 +213,14 @@ app.mixin({ }) ``` +## 欠点について + Vue 2 では、ミックスインはコンポーネントロジックの一部を再利用可能なチャンクに抽象化する主要なツールでした。ただし、いくつかの問題があります: -- ミックスインはコンフリクトしやすい: それぞれの機能のプロパティが同じコンポーネントにマージされるため、プロパティ名のコンフリクト回避とデバッグのために、全ての他の機能について知っておく必要があります。 +- ミックスインはコンフリクトしやすい: それぞれのミックスインのプロパティが同じコンポーネントにマージされるので、プロパティ名のコンフリクトを避けるために、すべての他のミックスインについて知っておく必要があります。 + +- どこからともなく現れたようなプロパティ: コンポーネントが複数のミックスインを使っている場合、どのプロパティがどのミックスインからきたものなのか、必ずしも明らかではありません。 - 再利用性は制限されている: ロジックを変更するためのパラメータをミックスインに渡せないことは、抽象化ロジックに関する柔軟性を低下させます。 -これらの問題に対処するため、論理的な関心事によってコードを整理する新しい方法を追加しました: [コンポジション API](composition-api-introduction.html) +これらの問題に対処するため、論理的な関心事によってコードを整理する新しい方法を追加しました: [Composition] API](composition-api-introduction.html)