Macと Electron Forge + React + MUI でPCアプリを作る(その2)で導入したReactをソースに適用していきます。
現状:起動したら main/main.tsによってメインウィンドウが作られ、renderer/index.html に直接記述されたHello Worldが表示されます
次にやること:renderer/index.html に rootを定義し、renderer/index.tsxによって id=”root”をReact Appコンポーネントに置き換えて、Appコンポーネント内に記述されたHello World from React! を表示するようにします
まず、呼び出し先の App.tsx を作成し、Appコンポーネントを作っておきます
$ cd ./src/renderer/ $ vim App.tsx ----- const App = () => { return <div>💖 Hello World from React!</div>; }; export default App; ----- :wq
index.html の Hello Worldの代わりに、呼び出し元の <div id=”root”></div> を記述します
$ vim ../../index.html ----- <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Hello World!</title> </head> <body> <!-- React アプリのマウントポイント --> <div id="root"></div> </body> </html>
index.tsx を修正します。id=”root” を検索し、rootを <App /> に置き換えるコードを書きます
$ vim index.tsx ----- import React from "react"; import ReactDOM from "react-dom/client"; import App from "./App"; import "./index.css"; const root = ReactDOM.createRoot( document.getElementById("root") as HTMLElement ); root.render( <React.StrictMode> <App /> </React.StrictMode> ); ----- :wq
起動後に開発ツールが立ち上がらないように、main/main.tsの以下をコメントアウトします
mainWindow.webContents.openDevTools();
$ vim ../main/main.ts ----- . . . // mainWindow.webContents.openDevTools(); . . . ----- :wq
起動してみて、Hello World from React! が表示されればReact Appコンポーネントが正常に呼び出されています。これでReact化ファーストステップはOKです!
$ npm start
次は、簡単な機能を作ってみたいと思います。
Macと Electron Forge + React + MUI でPCアプリを作る(その4)