React MUI (Material-UI)

前々回に引き続き、Reactの話題です。Webプログラミングはたくさんの要素から構成され、しかもライブラリの流行り廃りが激しいため、その時その時で少しずつ切り出して理解する必要があると思っています。
今回はReactでよく使われるUIライブラリ、MUIを試して見ました。

MUI(旧 Material-UI)とは、Googleのマテリアルデザインの仕様を取り入れているUIコンポーネントライブラリで、 見栄えの良いUIを作成することができます。
UIの中でも比較的複雑なTreeViewを下記のサンプルを利用して実装して見ました。

https://mui.com/x/react-tree-view/

環境
node v20.4.0 / Mac(arm64)

インストール
npx create-react-app uidemo3 –template typescript
npm i @mui/material
npm i @mui/icons-material
npm i @mui/x-tree-view
npm i @react-spring/web

RichObjectTreeView.tsx

上記、データマッピングをしているRichObjectTreeViewサンプルに、デザインをカスタマイズしているCustomizedTreeViewを適用しました。

index.tsx

実行
npm start

ビルドも一応確認
npm run-script build
npx serve build

実行画面は同じ

ここで基本に返って、 tsx(typescript & jsx) が、どのように変換されるか確認して見ました。というのはブラウザもnodejsも、JavaScriptしか実行できないにも関わらず、拡張機能があたかも標準のように見えてしまうことをあらためる意味もあります。

sample.tsx

tsconfig.json

インストール
npm install typescript
npm install react

tsx -> js変換
npx tsc –jsx react-jsx sample.tsx

sample.js

下記のように編集して実行
sample2.js

% node sample2.js
{
‘$$typeof’: Symbol(react.element),
type: ‘h1’,
key: null,
ref: null,
props: { class: ‘greeting’, children: ‘Hello, world!’ },
_owner: null,
_store: {}
}

クライアントサイド、サーバサイド両方で同じ言語が使えることから、nodejsがカバーする機能もどんどん複雑化しつつあります。単純な上記仕組みを頭に入れておくことは必要と考えます。

参考

ネイティブのJavaScriptでJSXを使ってみる