技術共有

リアクティブ ref() とリアクティブ()

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


参照()

  • 効果: 応答変数を定義します。

  • 文法:let xxx=ref(初期値)。

  • 戻り値: RefImpl のインスタンス オブジェクト。ref オブジェクトまたは ref と呼ばれます。ref オブジェクトの value 属性は応答します。

  • 気をつけて

    1. JS の操作データには xxx.value が必要ですが、テンプレートでは .value は必要ありません。直接使用してください。
    2. let name =ref('Zhang San') の場合、name は応答しませんが、name.value は応答します。

リアクティブ()

  • 効果: 応答性の高いオブジェクトを定義します (基本的な型には使用せず、ref を使用してください。そうでない場合はエラーが報告されます)。

  • 文法:let 応答オブジェクト = リアクティブ(ソース オブジェクト)。

  • 戻り値: Proxy のインスタンス オブジェクト。レスポンシブ オブジェクトと呼ばれます。

  • 気をつけて: reactive で定義されるレスポンシブ データは「深い」です。

リファレンスとリアクティブ

  • マクロの観点から見ると:
    1. ref は、基本型データ、オブジェクト型データを定義するために使用されます。
    2. reactive は、オブジェクト タイプのデータを定義するために使用されます。
  • 違い:
    1. ref によって作成された変数は value を使用する必要があります (volar プラグインを使用して値を自動的に追加できます)。
    2. Reactive は新しいオブジェクトを再割り当てするため、応答性が失われます (0object.assign を使用してオブジェクト全体を置き換えることができます)。
  • 使用原則:
    1. 基本的なタイプの応答データが必要な場合は、 ref を使用する必要があります。
    2. 応答性の高いオブジェクトが必要な場合は、階層は深くなく、ref または reactive のいずれかを使用できます。
    3. 深い階層を持つ応答性の高いオブジェクトが必要な場合は、reactive を使用することをお勧めします。

toRef と toRef

効果: レスポンシブ オブジェクトの各属性を ref オブジェクトに変換します。
述べる: toRefs は toRef と同じ機能を持ちますが、toRefs は一括で変換できます。
構文は次のとおりです。

import {reactive,toRefs,toRef} from
// 数据
let person = reactive({
	name:'张三
	age:18
})
let {name,age} = toRefs(person)
let nl = toRef(person,'age')