検索
ホームページウェブフロントエンドVue.jsvue3でのJSXの使い方を詳しく解説した記事

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

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

Vue では、ほとんどの場合、テンプレート <template></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 までご連絡ください。
フロントエンドの風景:Netflixが選択にアプローチした方法フロントエンドの風景:Netflixが選択にアプローチした方法Apr 15, 2025 am 12:13 AM

Netflixのフロントエンドテクノロジーでの選択は、主にパフォーマンスの最適化、スケーラビリティ、ユーザーエクスペリエンスの3つの側面に焦点を当てています。 1。パフォーマンスの最適化:Netflixは、Reactをメインフレームワークとして選択し、SpeedCurveやBoomerangなどのツールを開発して、ユーザーエクスペリエンスを監視および最適化しました。 2。スケーラビリティ:マイクロフロントエンドアーキテクチャを採用し、アプリケーションを独立したモジュールに分割し、開発効率とシステムのスケーラビリティを改善します。 3.ユーザーエクスペリエンス:Netflixは、Material-UIコンポーネントライブラリを使用して、A/Bテストとユーザーフィードバックを介してインターフェイスを継続的に最適化して、一貫性と美学を確保します。

React vs. Vue:Netflixはどのフレームワークを使用していますか?React vs. Vue:Netflixはどのフレームワークを使用していますか?Apr 14, 2025 am 12:19 AM

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

フレームワークの選択:Netflixの決定を推進するものは何ですか?フレームワークの選択:Netflixの決定を推進するものは何ですか?Apr 13, 2025 am 12:05 AM

Netflixは、主に、パフォーマンス、スケーラビリティ、開発効率、エコシステム、技術的な負債、およびフレームワーク選択におけるメンテナンスコストを考慮しています。 1。パフォーマンスとスケーラビリティ:JavaとSpringbootが選択され、大規模なデータと高い同時リクエストを効率的に処理します。 2。開発効率とエコシステム:Reactを使用して、フロントエンド開発効率を向上させ、その豊富なエコシステムを利用します。 3.技術的な負債とメンテナンスコスト:node.jsを選択してマイクロサービスを構築して、メンテナンスコストと技術的債務を削減します。

Netflixのフロントエンドの反応、Vue、および未来Netflixのフロントエンドの反応、Vue、および未来Apr 12, 2025 am 12:12 AM

Netflixは、主にReactをフロントエンドフレームワークとして使用し、特定の機能のためにVUEによって補足されます。 1)Reactのコンポーネント化と仮想DOMは、Netflixアプリケーションのパフォーマンスと開発効率を向上させます。 2)VueはNetflixの内部ツールと小規模プロジェクトで使用されており、その柔軟性と使いやすさが重要です。

フロントエンドのvue.js:実際のアプリケーションと例フロントエンドのvue.js:実際のアプリケーションと例Apr 11, 2025 am 12:12 AM

Vue.jsは、複雑なユーザーインターフェイスを構築するのに適した進歩的なJavaScriptフレームワークです。 1)そのコア概念には、レスポンシブデータ、コンポーネント、仮想DOMが含まれます。 2)実際のアプリケーションでは、TODOアプリケーションを構築し、Vuerouterを統合することで実証できます。 3)デバッグするときは、vuedevtools and Console.logを使用することをお勧めします。 4)パフォーマンスの最適化は、V-IF/V-Show、リストレンダリング最適化、コンポーネントの非同期負荷などを通じて達成できます。

Vue.jsとReact:重要な違​​いを理解するVue.jsとReact:重要な違​​いを理解するApr 10, 2025 am 09:26 AM

Vue.JSは中小企業から中規模のプロジェクトに適していますが、Reactは大規模で複雑なアプリケーションにより適しています。 1。VUE.JSのレスポンシブシステムは、依存関係追跡を介してDOMを自動的に更新し、データの変更を簡単に管理できるようにします。 2.反応は一方向のデータフローを採​​用し、データは親コンポーネントから子コンポーネントに流れ、明確なデータフローと簡単な抽出構造を提供します。

Vue.js vs. React:プロジェクト固有の考慮事項Vue.js vs. React:プロジェクト固有の考慮事項Apr 09, 2025 am 12:01 AM

VUE.JSは、中小規模のプロジェクトや迅速な反復に適していますが、Reactは大規模で複雑なアプリケーションに適しています。 1)Vue.jsは使いやすく、チームが不十分な状況やプロジェクトスケールが小さい状況に適しています。 2)Reactにはより豊富なエコシステムがあり、高性能で複雑な機能的ニーズを持つプロジェクトに適しています。

Vueにタグをジャンプする方法Vueにタグをジャンプする方法Apr 08, 2025 am 09:24 AM

VUEでタグのジャンプを実装する方法には、HTMLテンプレートでAタグを使用してHREF属性を指定する方法が含まれます。 VUEルーティングのルーターリンクコンポーネントを使用します。 JavaScriptでこれを使用します。$ router.push()メソッド。パラメーターはクエリパラメーターに渡すことができ、ルートは動的ジャンプのルーターオプションで構成されています。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール