目次
h 関数
JSX
JSX とテンプレートはどのように選択すればよいですか?
まず第一に、通常、プロジェクトでアプリケーションを作成するためにテンプレート テンプレートを使用します。 、テンプレートテンプレートは、ビルドフェーズ中にレンダリングレンダリング関数にコンパイルされます。レンダリング関数は仮想DOMを返す関数です。
ホームページ ウェブフロントエンド Vue.js vue3でのJSXの使い方を詳しく解説した記事

vue3でのJSXの使い方を詳しく解説した記事

Nov 25, 2022 pm 09:01 PM
vue vue3 jsx

vue で JSX を使用するにはどうすればよいですか? vue3でのJSXの使い方については以下の記事で紹介していますので、ご参考になれば幸いです。

vue3でのJSXの使い方を詳しく解説した記事

Vue では、ほとんどの場合、テンプレート <template> 構文を使用してアプリケーションを作成することをお勧めします。

Vue 3 プロジェクト開発では、テンプレートが Vue 3 のデフォルトの記述方法です。テンプレートは HTML のように見えますが、Vue は実際にはテンプレートをレンダリング関数に解析し、コンポーネントの実行時にレンダリング関数を通じて仮想 DOM を返します。 [学習ビデオ共有: vue ビデオ チュートリアル Web フロントエンド ビデオ ]

ただし、使用シナリオによっては、JavaScript の完全なプログラミング機能を実際に使用する必要があります。このとき、レンダリング機能が役に立ちます。

h 関数

Vue は、vnodes 仮想 dom を作成するための h() 関数を提供します。次の例: コンポーネントで

import { h } from &#39;vue&#39;

const vnode = h(
  &#39;div&#39;, // type
  { id: &#39;foo&#39;, class: &#39;bar&#39; }, // props
  [
    /* children */
  ]
)
ログイン後にコピー

を使用するにはどうすればよいですか?

以前、複合 API がテンプレートで使用されていたときは、setup() フックの戻り値を使用してデータをテンプレートに公開していました。ただし、h() を使用する場合、setup() フックは レンダリング関数 を返します。

import { ref, h } from &#39;vue&#39;

export default {
  props: {
    /* ... */
  },
  setup(props) {
    const count = ref(1)

    // 返回渲染函数
    return () => h(&#39;div&#39;, props.msg + count.value)
  }
}
ログイン後にコピー

手書きの h 関数はさらに処理できます。ダイナミックなシーン。ただし、複雑なシーンの場合、 h 関数を記述するのは非常に面倒で、すべての属性を自分でオブジェクトに変換する必要があります。また、コンポーネントがネストされると、オブジェクトは非常に複雑になります。ただし、h 関数は仮想 DOM も返すため、h 関数をより便利に記述する方法はあるでしょうか?答えは「はい」です。その方法は JSX です。

JSX

JSX は JavaScript の XML に似た拡張機能で、これを使用すると簡単な方法で vnode を作成できます。 JavaScript で HTML を記述するための構文は JSX と呼ばれ、JavaScript 構文を拡張したものです。上記のコードを JavaScript 環境で直接実行すると、エラーが報告されます。 JSX の本質は、次のコードの糖衣構文です。

const vnode = <div id="app">hello</div>
ログイン後にコピー

実際には、仮想 DOM を返すために、h 関数内でも createVnode が呼び出されます。

それでは、Vue プロジェクトで JSX を使用するにはどうすればよいでしょうか?

デフォルトでは、vue3 vite プロジェクトは jsx をサポートしていません。jsx をサポートしたい場合は、プラグイン

@vitejs/plugin-vue-jsxx

# をインストールする必要があります。 ##インストール

const vnode = createVnode(&#39;div&#39;,{id:"app"}, &#39;hello&#39;)
ログイン後にコピー

vite.config.js で設定します:

npm i @vitejs/plugin-vue-jsx -D
ログイン後にコピー

その後、Vue コンポーネントで使用できます:

import vueJsx from "@vitejs/plugin-vue-jsx"; // 配置vue使用jsx

export default defineConfig({
  plugins: [
    vue(), 
    vueJsx()
  ],
});
ログイン後にコピー

注: langスクリプトを jsx に変更する必要があります。

または jsx ファイル:

// render.vue
<script>
import { ref } from "vue";
export default {
  setup() {
    const count = ref(100);
    return () => <div>count is: {count.value}</div>;
  },
};
</script>
ログイン後にコピー

テンプレートと JSX

JSX とテンプレートはどのように選択すればよいですか?

テンプレートの利点: テンプレートの構文は固定されており、v-if、v-for などのみです。この固定形式の構文に従って記述すると、Vue3 はコンパイル レベルで静的タグを簡単に最適化し、Diff プロセスを削減できます。たとえば、静的プロモーション、タイプタグ、ツリー構造のバランシングなどにより、仮想 DOM ランタイムのパフォーマンスを向上させることができます。これは、Vue 3 の仮想 DOM が Vue 2 よりも高速である重要な理由でもあります。

参考:

Vue レンダリング メカニズム

JSX の利点: テンプレートは、構文制限のため、JSX のようなより動的なニーズをサポートできません。これは、テンプレートと比較した JSX の利点でもあります。

JSX には、1 つのファイルで複数のコンポーネントを返すことができるという点で、テンプレートに比べてもう 1 つの利点があります。

どうやって選べばいいの?

ビジネス ニーズを実現する場合は、テンプレートの使用を優先し、Vue 独自のパフォーマンス最適化を最大限に活用してください。より高い動的要件を持つコンポーネントは、JSX を使用して実装できます。 (たとえば、後で JSX を使用して動的フォーム ジェネレーターを実装します)

概要

まず第一に、通常、プロジェクトでアプリケーションを作成するためにテンプレート テンプレートを使用します。 、テンプレートテンプレートは、ビルドフェーズ中にレンダリングレンダリング関数にコンパイルされます。レンダリング関数は仮想DOMを返す関数です。

その後、実際にはこのステップをスキップして、 h 関数を直接使用して仮想 DOM を生成できます。

h 関数の内部実行は、実際には仮想 DOM を生成する createVNode 関数ですが、h 関数は記述が難しいため、より便利かつ迅速に記述するために JSX を使用します。 createVNode 関数は実際には JSX の内部で使用されます。

JSX は JavaScript で直接実行できません。vite プロジェクトでは、プラグイン

@vitejs/plugin-vue-jsxx

をインストールして設定する必要があります。それに応じてその時だけ。

最後に、テンプレートと JSX の長所と短所を比較します。テンプレートの利点は、その構文が固定されており、記述が簡単であることです。コンパイル レベルでは、Vue3 はテンプレートのコンパイルに対して多くの最適化を行っています。 JSX の利点は柔軟性にあり、動的要件が高い場合には、JSX が標準構成になっています。

よく言われるように、アート業界には専門分野があります。テンプレートと JSX において、どちらよりも強力なものはありません。それぞれに、さまざまなシナリオで独自の長所と短所があります。どちらも強力なプログラミング ツールです。適切に使用された場合。

(終了)

(学習ビデオ共有: Web フロントエンド開発基本プログラミング ビデオ)

以上がvue3でのJSXの使い方を詳しく解説した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vueはマーキー/テキストスクロール効果を実現します Vueはマーキー/テキストスクロール効果を実現します Apr 07, 2025 pm 10:51 PM

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

VUEトラバーサルの使用方法 VUEトラバーサルの使用方法 Apr 07, 2025 pm 11:48 PM

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。

Vue Paginationの使用方法 Vue Paginationの使用方法 Apr 08, 2025 am 06:45 AM

ページネーションは、パフォーマンスとユーザーエクスペリエンスを向上させるために、大きなデータセットを小さなページに分割するテクノロジーです。 VUEでは、次の組み込みメソッドを使用してページを使用できます。ページの総数を計算します。TotalPages()トラバーサルページ番号:V-For Directive on Currentページを設定します。

See all articles