vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

1. いつsetUpを実行するか

vue3 ではメソッドを正常に使用できるようになったことは誰もが知っています。
しかし、setUp 内のメソッド内でメソッドを呼び出すことはできません。
なぜ? ? ?
まず、次の 2 つのライフサイクル機能を理解しましょう。
beforeCreateは、data内のデータがまだ初期化されておらず、使用できないことを意味します。
作成済み: データが初期化され、使用可能になりました
setUp は beforeCreate 関数と Created 関数の間にあります。
setUp 内のメソッド内でメソッドを呼び出せないのはなぜかご存知ですか?

2. データ内のデータとメソッド内のメソッドはsetUpでは使用できません。

<スクリプト>
エクスポートデフォルト{
  名前: 'アプリ'、
  データ:関数(){
    戻る {
      混乱:「私はデータだ」
    }
  },
  方法:{
    関数(){
      console.log("メソッド内の関数")
    },
  },
  設定(){
    console.log('this',this);//未定義
    this.func();//呼び出すことができません},
}
</スクリプト>

3. setUp関数に関する注意

(1)setUp関数ではデータやメソッドが使用できないため。
誤った使用を避けるために、VueはsetUp関数でこれを直接設定します。
未定義に変更

(2) setUp関数は同期のみ可能で、非同期はできません。

つまり、これはできないということです。
非同期セットアップ(){

},
これにより、インターフェースが空白になります。

4 Vue3 のリアクティブ性

Vue2 では、レスポンシブ データは de fineProperty を通じて実装されます。
Vue3では、レスポンシブデータはES6プロキシを通じて実装されます。

注意すべき反応ポイント
リアクティブパラメータはオブジェクト(json/arr)である必要があります
他のオブジェクトを reactive に渡すと、デフォルトでは、オブジェクトを変更してもインターフェースは自動的に更新されません。更新したい場合は、再割り当てすることができます。

5 リアクティブ文字列データが更新されない

<テンプレート>
 <div>
    <div>
      <li>{{str}}</li>
      <button @click="func1">ボタン</button>
    </div>
 </div>
</テンプレート>
<スクリプト>
'vue' から {reactive} をインポートします
エクスポートデフォルト{
  名前: 'アプリ'、
   設定(){
    // リアクティブの本質は、受信データをプロキシ オブジェクトにラップすることです。 // オブジェクトは作成時に渡されないため、応答性は実現されません。
    str = リアクティブ(123)とする
    関数func1(){
      console.log(str);//123
      666 文字
    }
    {str,func1} を返す
  },
}
</スクリプト>

ボタンがクリックされてもビューが更新されないことがわかりました。
オブジェクトを渡していないためです。ビューを更新する場合。
ref関数を使用する必要があります

6 リアクティブアレイ

<テンプレート>
 <div>
    <div>
      <li>{{arr}}</li>
      <button @click="func1">ボタン</button>
    </div>
 </div>
</テンプレート>
<スクリプト>
'vue' から {reactive} をインポートします
エクスポートデフォルト{
  名前: 'アプリ'、
   設定(){
    arr=reactive([{name:'张三',age:19},{name:'李四',age:39}]) とします。
    関数func1(){
      arr[0].name="私は張三の弟です"
    }
    {arr,func1} を返す
  },
}
</スクリプト> 

7. リアクティブに他のオブジェクトを更新する

<テンプレート>
 <div>
    <div>
      <li>{{sate.time}}</li>
      <button @click="func1">ボタン</button>
    </div>
 </div>
</テンプレート>
<スクリプト>
'vue' から {reactive} をインポートします
エクスポートデフォルト{
  名前: 'アプリ'、
   設定(){
    状態 = リアクティブ({
      時間:新しい日付()
    })
    関数func1(){
      //他のオブジェクトが渡され、 sate.time が直接更新されます="2021年-6月-9日";
    }
    {sate,func1} を返す
  },
}
</スクリプト>

上記は、vue3 の setUp と reactive 関数の詳細な説明です。vue3 の setUp と reactive 関数の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue3 の組み合わせ API における setup、ref、reactive の完全な使用方法
  • Vue3 における ref と reactive の詳細な説明と拡張
  • Vue3 のリアクティブリセットの問題と解決策

<<:  Mysql は null 値の first/last メソッドの例を実装します

>>:  Windows 10 Home Edition に Docker for Windows をインストールする

推薦する

MySQL の order by ステートメントの最適化方法の詳細な説明

この記事では、ORDER BY文の最適化について学びます。その前に、インデックスの基礎的な理解が必要...

MySQL の問題を解決する: MSVCR120.dll が見つからないため、コードの実行を続行できません

1. 問題MySQL の初期化時に発生する問題は、次のとおりです。 1. 「MSVCR120.dll...

JS は Baidu 検索ボックスを実装します

この記事の例では、Baidu検索ボックスを実装するためのJSの具体的なコードを参考までに共有していま...

MySQL 8.0.15 のインストールと設定のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

HTMLはa要素hrefのURLリンクを自動的に更新したり新しいウィンドウを開いたりする機能を実装する

場合によっては、次のような機能を実装したいことがあります。リンクをクリックします。リンクがブラウザで...

Mysql SQL ステートメントのコメント

MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...

HTML の順序付きリスト、順序なしリスト、定義リストに関する簡単な説明

順序付きリストXML/HTML コードコンテンツをクリップボードにコピー<オルタイプ= &qu...

IE8でラベルの背景画像が表示されない問題の解決方法

今日、ちょっとした問題に遭遇し、長い間苦労しました。そのことを皆さんにシェアしたいと思います。 a ...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

HTML の POST リクエストにおける a タグの 2 つの使用法の分析

HTML POST リクエストで a タグを使用する 2 つの例を次に示します。 1. ajaxを使...

Baota LinuxパネルにFTP接続できない問題の解決方法の詳細な説明

Alibaba Cloud Server を使用している場合は、セキュリティ グループ設定でポート ...

MySql のクラッシュとサービスの起動失敗の解決策

私は長い間PHPに触れてきましたが、インストール環境は非常に不慣れです。多くの問題に遭遇しました。B...