React講座 JSXの使い方

React JSXの使い方

ではReactの仕組みを理解したところでReactのテンプレートシンタックスのJSXを理解していきましょう。 JSXはこのように書くことができます。ストリングでもないのでクオートで囲う必要もありません。 JSXを使わない方法もありますが、Reactを使う上ではJSXを是非使っていきたいです。 JSXはReactのエレメントを作成して、そこからDOMに変換されるようになります。 JSXを使う理由 Reactはイベントへのリスポンスや状態の変化を感知してユーザー側に表示するデータをリアクティブに作成することができます。 Reactの強みでもあるのがこのロジックとマークアップ(HTML)を同じファイルに記述できることです。ファイルが別々でないので一目で見ただけで何がユーザー側に表示されるか理解しやすいです。 この概念をコンポーネントと呼びます。 JSXに式を埋め込む では、次の例を見てみましょう。 nameという変数を宣言し、中括弧{}に入れることでJSX内で使用することができます。 この方法を使うことで、計算式の2+2やオブジェクト(例:user.name)を使うことができます。 JSXは長く記載する場合もあるので()で囲むようにするとよいです。 JSX自体を式として使う 先ほどはJSXに変数を入れる方法を紹介しました。 さらに、JSX自体も式としてif文やforループの文で使用することができます。 ReactがJSXを読み込む際にコンパイルされ普通のJavaSxriptに変換されるようになります。 JSXで属性を指定する 文字列リテラルを属性として指定するために引用符(クオーテーション)を使用できます。 これでHTMLの属性(attribute)にストリングの値を入れてあげることができます。 また、属性に JavaScript 式を埋め込むために中括弧を使用することもできます。これでダイナミックなデータを流し込むことができますね。 注意しておきたいこと JSXはHTMLよりもJavaScriptに近いものになります。ですのでHTMLの属性にclassを入れたい場合はJavaScriptのclassと干渉することを防ぐためにclassNameを使うことになります。 JSXで子要素を指定 タグが空の場合は、XMLのように/>でタグを閉じることができます。 もちろんJSXのタグに子要素(HTMLのタグ、エレメント)を入れることができます。 JSX はインジェクション攻撃を防ぐ JSX にユーザの入力を埋め込むことは安全です: React DOMはJSXに埋め込まれた値をレンダー前にエスケープします。 →エスケープとは、HTML上で特殊文字を期待通りに表示するために施す処理のことです。 →特殊文字に指定されている文字は、割り当てられている記号を記述することで表示できます。 →例えば、<は<であったり、©は©など、特殊文字には必ず該当する記号が割り当たっています。 このため、XSS攻撃の防止になります。 JSXはオブジェクトの表現になる ReactがJSXをコンパイルする流れを見てみましょう。 下記の二つの例は同じものになります。 ①JSXの例 ②JSXを使わない例 上記のコードをReactのcreateElementメソッドで下記の様なオブジェクトを作成することになります。 このようなオブジェクトはReact要素(エレメント)と呼びます。Reactがこれらのオブジェクトを読み取り、必要に応じてDOMを構築し常にリアクティブなデータをユーザーに’届けるようになります。 では、次回は要素のレンダーについて学んでいきましょう。

React講座 Reactの仕組み

reactの仕組みを理解する

JavaScriptの基礎を学んで次に何をしたらよいか迷っている方、Web開発でスキルを上げたい方、Reactのフレームワークを是非学びましょう。 では、Reactのコンセプトのシリーズ第一章の始まりです。 Reactのアプリケーションをビルドする では、手元にテキストエディタとNode.jsがあることが条件です。(ここまでわからない人はJavaScriptの基本と) では、前回の記事で紹介したように、Reactのプロジェクトを作成しておきます。 Viteで作成する場合は同じコマンドだけ下記に記載しておきます。 index.html では、テキストエディタからファイル構成を見てみましょう。 index.htmlがプロジェクトの直下にありますね。 このHTMLはほぼ触る必要はありません。 CSSもJavaScriptもすべてアプリケーションをマウントする際に他のJavaScriptファイルから読み込ませるようにします。 このマウントというのはReactのアプリケーションを読み込む作業のことです。 ここでIdがrootのdivがあることに注目しましょう。 ここにすべてのReactのアプリケーションをマウントすることになります。 これはsrcフォルダ内のmain.jsxファイルを見ることで理解できます。jsxはJavaScriptのエクステンションのことで、JavaScript内でHTMLを書けるようにしたものです。詳しい説明は後から行います。 上記のコードを見ると、先ほどのHTMLのrootのidのところに<App/>というのをレンダーしていることが分かりますね。 ここにassets/App.jsxがマウントされているという事になります。 これがコンポーネントの概念になります。それぞれのJsxファイル内にコンポーネント(パーツ)となるものを作成して再利用できるところでマウントさせることができます。 ですので、ボタンのコンポーネントやフォームのコンポーネントを作成してどこでも再利用できるようになります。便利ですね。 では次にJSXについて説明したいと思います。

ViteでReactを始めよう!

Viteでreactを始めよう

皆さん、こんにちは。

今日はViteというコマンドツールでReactのアプリをセットアップしていきます。

今日の条件

Node.js バージョン16 (コマンド node -v)

npm バージョン8(npm -v)

今までのやり方

通常のReactのセットアップは下記のコマンドです。

npx create-react-app my-app

これで自動的にBabelとWebPackがインストールされたreactのプロジェクトが作成されます。

これらのパッケージが古いブラウザにも対応したJavaScriptファイルなどに変換してくれるのですが、その為にファイルが大きくなる+遅くなることがあります。

なので今日使うViteでサクサクの一般的なブラウザのみに対応したセットアップの仕方で設定する方法をお勧めします。

Viteとは

ViteはもともとVueJSの創設者が作成したビルドツールになります。Vueのプロジェクト以外にも対応しており、reactのデベロッパーにも人気です。

ViteでVueのプロジェクトを始めたい場合は下記の記事からどうぞ。

ViteでReactを始める(Yarn)

yarn create vite

#プロジェクト名を聞かれたら
my-vite-app

#フレームワークを聞かれたら
reactを選択

cd プロジェクトフォルダ
yarn 
yarn dev

ViteでReactを始める

ではコマンドラインに下記を叩き込みます。

ファイルパスが自分がプロジェクトを作成したいパスにいることを確認してください。

npm create vite@latest

y(いえす)でエンターを押す。そのままエンターでもOKです。

プロジェクト名を聞かれるので適当に入力します。

画像っだとmovie-appにしてみました。

では使いたいフレームワークを選択するのでここで、reactを選択してエンター

次にJavaScriptを使うのかTypeScriptを使うのか聞かれます。

今回はJavaScriptにしてエンター。

ではreactのベースとなるアプリができたのでフォルダの中に移動してパッケージをインストールして、起動してみます。

表示された通りに順番に入力しましょう。

npm installはnpm iでも同じことができます。

npm run dev

ここで開発用のアプリが起動したのでブラウザから見てみましょう。

カウントのところをクリックすると数が増えていきますね。

へえ。

お疲れ様でした。