Vue3のSetupContext関数を詳しく解説:Vue3コンポーネントAPIの使い方をマスターする

WBOY
リリース: 2023-06-18 08:20:38
オリジナル
2629 人が閲覧しました

Vue3 の正式リリースにより、Vue.js 開発者はその新しい機能と API メソッドを使用して開発を開始できます。その中でも、SetupContext 関数は Vue3 の重要な API メソッドであり、Vue3 コンポーネントをより適切に作成できるように多くの便利な関数を提供します。この記事では、SetupContext関数の使い方を詳しく紹介します。

1. SetupContext 関数とは何ですか?

SetupContext 関数は Vue3 で提供されている API メソッドで、コンポーネントの setup() 関数内で呼び出されます。この関数は、次のプロパティを含むオブジェクトを返します:

props: コンポーネントによって受信された props パラメータ;
attrs: コンポーネントのすべての未定義属性;
slots: コンポーネント スロット;
emit:コンポーネントのカスタム イベント。
SetupContext 関数を導入し、setup() 関数で使用することで、コンポーネントに渡されるプロパティ、スロット、カスタム イベントなどの情報を取得できます。

2. Props 属性

Vue3 では、コンポーネントの詳細な設定で使用する必要がある props パラメーターを宣言する必要がなくなりました。代わりに、コンポーネントの setup() 関数で、props 属性を使用して受信 props パラメータを取得します。

このようにして、Vue2 のように、渡された props パラメーターを取得するために this.$props を使用する必要がなくなりました。例:

// Vue2 で props パラメータを取得します
props: ['message'],
mounted() {
console.log(this.$props.message)
}

//Vue3 の props 属性から props パラメータを取得します。
setup(props) {
console.log(props.message)
}
Vue3 では、取得します。 props パラメータ それ自体は非常にシンプルになります。コンポーネントの setup() 関数では、props 属性を使用して、受け取った props パラメータに直接アクセスできます。

コンポーネントの props パラメータがオブジェクトであり、そのすべてのプロパティを setup() 関数で使用する必要がある場合。代入は、構造化構文を使用して実行できます。例:
setup({ message, author }) {

console.log(message, author)
ログイン後にコピー

}
この例では、オブジェクト分割構文を使用して、props 内の message プロパティと author プロパティを変数 message と author に割り当てます。 。

Vue3 の props パラメータは読み取り専用プロパティになっており、双方向バインディングをサポートしていないことに注意してください。 props パラメータを変更する必要がある場合は、emit() メソッドを通じて親コンポーネントにメッセージを送信する必要があります。

3. Attrs 属性

SetupContext オブジェクトには、props 属性に加えて、attrs 属性も含まれています。このプロパティには、コンポーネント内のすべての未定義のプロパティが含まれます。例:
// コンポーネントは次のように定義されます:
props: {
message: String
},
setup(props, {attrs}) {

console.log(attrs.color) // 'red'
ログイン後にコピー

}

// コンポーネントを使用する場合、color 属性が渡されます

この例では, example-component コンポーネントを定義し、未定義の color プロパティを渡します。 SetupContext 関数を使用する場合、attrs 属性を通じてこの未定義の属性を取得できます。

Vue3 の attrs 属性も読み取り専用属性であり、双方向バインディングをサポートしていないことに注意してください。

4. スロット属性

Vue3 は、Vue2 とまったく同じスロット属性も提供します。スロット属性を使用して、コンポーネントで渡されたスロットにアクセスできます。例:

// コンポーネントは次のように定義されます

{{ title }}

ログイン後にコピー


setup(props, {slots }) {
console.log(slots.default())
}

// コンポーネントを使用する場合、2 行のテキストが挿入されます

テキストの 1 行目


テキストの 2 行目
この例では、example-component コンポーネントを定義し、そのスロットに 2 行のテキストを挿入します。 setup() 関数では、slots 属性を使用してこれら 2 行のテキストにアクセスします。

Vue3 のスロットはデフォルト スロットと名前付きスロットに分かれていることに注意してください。したがって、名前付きスロットを取得する場合は、slots[name]() を通じて取得する必要があります。

5. Emit メソッド

Vue2 と完全に一致しており、コンポーネントが親コンポーネントにメッセージを送信する機能を提供します。 Vue3 では、setup() 関数で Emit メソッドを呼び出し、setup() 関数で返されたオブジェクトを通じてアクセスすることもできます。例:

// 親コンポーネントは次のように定義されます

// サブコンポーネントは次のように定義されます
setup(_, { Emit }) {

function handleClick() { emit('example-event', 'example data') } return { handleClick }
ログイン後にコピー

}
この例では、イベントの例を渡すために handleClick メソッドを定義します親コンポーネントのイベントと付随するデータのサンプル データに追加します。

Vue3 の Emit() メソッドは読み取り専用メソッドになっており、その動作を変更できないことに注意してください。

6. 結論

この記事では、Vue3 の SetupContext 関数とそのプロパティとメソッドについて詳しく説明しました。これらの Vue.js 3 の機能と API メソッドをマスターすると、Vue3 コンポーネントをより柔軟に作成し、さまざまなビジネス シナリオに適応できるようになります。

以上がVue3のSetupContext関数を詳しく解説:Vue3コンポーネントAPIの使い方をマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。