強くお勧めします! Vue 3.2 でシンタックスシュガーを設定する

強くお勧めします! Vue 3.2 でシンタックスシュガーを設定する

前の

フロントエンド プログラマーであれば、Vue 3 に精通している必要があります。現在最も人気のあるフロントエンド フレームワークの 1 つとして、多くの人がエントリーレベルのフレームワークとして使用しています。

しかし、Vue 3 が使用され始めてからかなり経っているにもかかわらず、Vue 3 には知識ポイントが多すぎて複雑すぎる、更新が速すぎるといった不満を言う人もいます。最近、Vue 3 では、スクリプト セットアップ構文シュガーという新しいテクノロジーが完成しました。

1. セットアップ構文シュガーとは何か

当初、Vue 3.0 で公開された変数は、テンプレート内で使用する前に返される必要がありました。

これで、スクリプト タグにセットアップを追加するだけで済みます。コンポーネントは登録せずにインポートするだけで済み、プロパティとメソッドを返す必要はなく、セットアップ関数を記述する必要はなく、エクスポート デフォルトを記述する必要もありません。カスタム指示もテンプレートで自動的に取得できます。

<テンプレート>
  <my-component :num="num" @click="addNum" />
</テンプレート>

<スクリプトの設定>
  'vue' から { ref } をインポートします。
  './MyComponent .vue' から MyComponent をインポートします。

  // 通常のセットアップと同じように記述しますが、変数を返す必要はありません。const num = ref(0) // ここで定義されたnumは直接使用できます。const addNum = () => { // 関数は、戻り値にnum.value++を返さずに直接参照することもできます。
  }
</スクリプト>

// キャメルケースを使用する必要があります

2. セットアップコンポーネントを使用して自動的に登録する

スクリプトセットアップでは、導入したコンポーネントをコンポーネント経由で登録せずに直接使用することができ、現在のコンポーネントの名前を指定することはできません。ファイル名に基づいて自動的に決定されるため、name属性を記述する必要はありません。例:

<テンプレート>
    <zi-hello></zi-hello>
</テンプレート>

<スクリプトの設定>
  './ziHello' から ziHello をインポートします
</スクリプト>

3. セットアップ後に新しいAPIを追加する

セットアップ関数がないので、どうやって props を取得して発行するのでしょうか?

セットアップスクリプトの構文シュガーは、新しいAPIを提供します。

3.1 プロパティの定義

親コンポーネントからプロパティを受け取るために使用されます。例:

親コンポーネントコード

<テンプレート>
  <div class="die">
    <h3>私は親コンポーネントです</h3>
    <zi-hello :name="名前"></zi-hello>
  </div>
</テンプレート>

<スクリプトの設定>
  './ziHello' から ziHello をインポートします
  
  'vue' から {ref} をインポートします
  let name = ref('赵小磊========')
</スクリプト>

サブコンポーネントコード

<テンプレート>
  <div>
    私はサブコンポーネント {{name}} です // Zhao Xiaolei========
  </div>
</テンプレート>

<スクリプトの設定>
  'vue' から {defineProps} をインポートします。

  定義プロパティ({
   名前:{
     タイプ:文字列、
     デフォルト:'私はデフォルト値です'
   }
 })
</スクリプト>

3.2 定義エミット

子コンポーネントは親コンポーネントにイベントを渡します。例:

サブコンポーネント

<テンプレート>
  <div>
    私は子コンポーネント {{name}} です
    <button @click="ziupdata">ボタン</button>
  </div>
</テンプレート>

<スクリプトの設定>
  'vue' から {defineEmits} をインポートします。

  //カスタム関数、親コンポーネントがトリガー可能 const em=defineEmits(['updata'])
  const ziupdata=()=>{
    em("updata",'私は子コンポーネントの値です')
  }

</スクリプト>

親コンポーネント

<テンプレート>
  <div class="die">
    <h3>私は親コンポーネントです</h3>
    <zi-hello @updata="updata"></zi-hello>
  </div>
</テンプレート>

<スクリプトの設定>
  './ziHello' から ziHello をインポートします
  
  const updata = (データ) => {
    console.log(data); //私は子コンポーネントの値です}
</スクリプト>

3.3 定義エクスポーズ

コンポーネントは独自のプロパティを公開し、親コンポーネントで取得できます。例:

サブコンポーネント

<テンプレート>
  <div>
    私は子コンポーネントです</div>
</テンプレート>

<スクリプトの設定>
  'vue' から {defineExpose、reactive、ref} をインポートします。
  ziage = ref(18)とする
  ziname = リアクティブ({
    名前:'趙小雷'
  })
  //露出変数 defineExpose({
    ジアージュ、
    ジナメ
  })
</スクリプト>

親コンポーネント

<テンプレート>
  <div class="die">
    <h3 @click="isclick">私は親コンポーネントです</h3>
    <zi-hello ref="zihello"></zi-hello>
  </div>
</テンプレート>

<スクリプトの設定>
  './ziHello' から ziHello をインポートします
  'vue' から {ref} をインポートします
  const zihello = ref()

  定数isclick = () => {
    console.log('ref によって公開された値を受け取ります',zihello.value.ziage)
    console.log('reactive によって公開された値を受け取ります',zihello.value.ziname.name)
  }
</スクリプト>

親コンポーネントによって得られた結果

Vue3 プロジェクトでセットアップ構文シュガーを有効にする方法

https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar

1. まず、エディターのveturプラグインを閉じて、Volarを開きます。

2. 新しい tsconfig.json / jsconfig.json ファイルを作成し、compilerOptions に "strict": true および "moduleResolution": "node" 構成項目を追加します。

要約:

以上がセットアップ構文シュガーの理解と知識です。ここではVue3.2のセットアップ構文シュガーについて紹介します。Vue3.2のセットアップ構文シュガーに関するより関連性の高いコンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue3 アップデートのセットアップ構文シュガー例の詳細な説明
  • Vue3 - セットアップスクリプトの使用経験の共有
  • フロントエンド vue3 セットアップチュートリアル
  • vue3 でのセットアップ スクリプトの適用例
  • Vue3 ベースのスクリプト設定構文 $refs の使用
  • setup+ref+reactive は vue3 の応答性を実装します
  • Vue3 setup() の高度な使用例の詳細な説明
  • vue3のセットアップ関数の使用について

<<:  HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

>>:  主要ブラウザとそのカーネルの紹介

推薦する

Vue.jsはシンプルな折りたたみパネルを実装します

この記事では、Vue.jsの具体的なコードを共有して、シンプルな折りたたみパネルを実装する例を紹介し...

Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法

シナリオシミュレーション:国内企業の中には、重要な業務をサポートするために特定のウィンドウ プログラ...

MySQL 文字列連結と null 値の設定のためのインスタンス メソッド

#文字列連結 concat(s1,s2); テーブル内の last_name と first_nam...

mysql は sql ファイルを実行し、エラーを報告します エラー: 不明なストレージ エンジン 'InnoDB' ソリューション

問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...

HTML ページ内の js および css ファイルのキャッシュを自動的にクリーンアップします (バージョン番号を自動的に追加します)

Web プロジェクトの開発プロセスでは、CSS ファイルや JS ファイルを参照することがよくあり...

HTML で div を非表示にする テーブルを非表示にする TABLE または DIV コンテンツの CSS スタイル

今夜、数日間悩まされていた問題を解決しました。本当に解決したかどうかはわかりませんが、解決されている...

MySQL マスタースレーブ同期メカニズムと同期遅延問題追跡プロセス

序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...

Vue における v-model を使用したクロスコンポーネントバインディングの基本的な実装方法

みなさんこんにちは。今日はv-modelを使って親子コンポーネントのバインディング効果を実現する方法...

リモート接続を許可するようにMySQLを変更する方法

MySQLリモート接続の問題に関しては、会社で働いているときに誰かのコンピュータに保存されているMy...

RHCE ブリッジング、パスワード不要のログイン、ポート番号の変更の概要

目次1. ブリッジを設定し、検証のためにパケットをキャプチャする1. ブリッジデバイスとセッションを...

MYSQLでリモートアクセス権限を有効にする方法

1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...

Jsモジュールパッケージのエクスポートの使用法と違いにはインポートが必要

目次1. Commonjsのエクスポートとrequireの使用1.1 CommonJS エクスポート...

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

MySQLデータベースエンジンをInnoDBに変更する

PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...

Nginx はリクエスト接続を統合し、ウェブサイトのアクセス例を高速化します

序文世界最高の Web サーバーの 1 つである Nginx の利点は明らかです。 Nginx がリ...