「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
https://github.com/OpenTouryoProject/SampleProgram/tree/master/Template/SPATemplate/ReactTemplate/
ReactTemplate ├ ClientApp | ├ components | | ├ Counter.tsx | | ├ FetchData.tsx | | ├ Home.tsx | | ├ Layout.tsx | | └ NavMenu.tsx | ├ css | | └ site.css | ├ boot.tsx | └ routes.tsx ├ Controllers | ├ HomeController.cs | └ SampleDataController.cs ├ Views | ├ Home | | └ Index.cshtml | ├ Shared | | ├ _Layout.cshtml | | └ Error.cshtml | ├ _ViewImports.cshtml | └ _ViewStart.cshtml ├ wwwroot | └ favicon.ico ├ .gitignore ├ appsettings.Development.json ├ appsettings.json ├ npm-shrinkwrap.json ├ package.json ├ Program.cs ├ ReactTemplate.csproj ├ Startup.cs ├ tsconfig.json ├ webpack.config.js └ webpack.config.vendor.js
Node.js、React、TypeScript、webpackからなる。
@{ ViewData["Title"] = "Home Page"; }
@section scripts { <script src="~/dist/main.js" asp-append-version="true"></script> }
<div id="react-app">Loading...</div>
「Index.cshtml(土台)」の「<div id="react-app">」の部分に、routesのコンテンツをロードする。
Node.jsのモジュールのインポート
import './css/site.css';
{ AppContainer } from 'react-hot-loader';
{ BrowserRouter } from 'react-router-dom';
function renderApp() { // This code starts up the React app when it runs in a browser. It sets up the routing // configuration and injects the app into a DOM element. const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!; ReactDOM.render( <AppContainer> <BrowserRouter children={ routes } basename={ baseUrl } /> </AppContainer>, document.getElementById('react-app') ); }
export const routes = <Layout> <Route exact path='/' component={ Home } /> <Route path='/counter' component={ Counter } /> <Route path='/fetchdata' component={ FetchData } /> </Layout>;
カウントアップ処理のテスト画面のHTMLを返す。
WebAPIからデータを取得しリスト表示する処理のテスト画面のHTMLを返す。
<p><em>Loading...</em></p>
Tags: :.NET開発, :.NET Core, :ASP.NET, :ASP.NET Web API, :ASP.NET SPA