注バージョンの HTML/CSS はここから入手できます: https://github.com/0wczar/airframe
どのスマートフォン、タブレット、デスクトップでも機能する高品質のダッシュボード / 管理者 / 分析テンプレート。 MITライセンスとしてオープンソースとして利用可能。
ミニマルなデザインと革新的な Light UI を備えたAirframe Dashboardにより、優れた UI を備えた驚くべき強力なアプリケーションを構築できます。大規模なアプリケーション向けに完璧に設計されており、詳細なステップバイステップのドキュメントが付属しています。
このAirframeプロジェクトは典型的な Webpack ベースの React アプリで、React Router もカスタマイズされた Reactstrap とともに含まれています。このプロジェクトには、いくつかの依存関係がすべて最新のものであり、定期的に更新されます。このプロジェクトはSSRをサポートしていません。必要な場合は、NextJs ベースのバージョンを使用してください。
Airframe Dashboard には、非常に多くの組み合わせやバリエーションで使用できるコンポーネントの膨大なコレクションがあります。 CRM 、 CMS 、管理パネル、管理ダッシュボード、分析など、あらゆる種類のカスタム Web アプリケーションで使用できます。
トマシュ・オフチャルチク:
開発環境を実行する前に、NodeJ (>= 10.0.0) をローカル マシンにインストールする必要があります。
npm install
実行します。抽出したディレクトリに.npmrc
というファイルがあることを確認してください。これらのファイルは通常、Unix ベースのシステムでは隠されています。
開発環境を開始するには、コンソールでnpm start
と入力します。これにより、ホットリロードが有効になった開発サーバーが起動します。
実稼働ビルドを作成するにはnpm run build:prod
。プロセスが完了したら、 /dist/
ディレクトリから出力をコピーできます。出力ファイルは縮小され、実稼働環境で使用できるようになります。
Webpack 構成ファイルを調整することで、特定のニーズに合わせてビルドをカスタマイズできます。これらのファイルは/build
ディレクトリにあります。詳細については、WebPack のドキュメントを確認してください。
プロジェクトのプロジェクト構造に関するいくつかの興味深い点:
app/components
- カスタム React コンポーネントはここに配置する必要がありますapp/styles
- ここに追加されたスタイルは CSS モジュールとして扱われないため、グローバル クラスまたはライブラリ スタイルはここに置く必要があります。app/layout
- AppLayout
コンポーネントはここにあり、それ自体内でページのコンテンツをホストします。追加のサイドバーとナビゲーションバーは./components/
subdir に配置する必要があります。app/colors.js
- ダッシュボードで定義されたすべての色を含むオブジェクトをエクスポートします。 JS ベースのコンポーネント (グラフなど) のスタイルを設定するのに役立ちます。app/routes
- PageComponents をここで定義し、 index.js
経由でインポートする必要があります。詳細については後ほど説明します。ルート コンポーネントは、 /routes/
ディレクトリ内の別のディレクトリに配置する必要があります。次に、 /routes/index.js
ファイルを開いてコンポーネントをアタッチする必要があります。これは 2 つの異なる方法で行うことができます。
静的にインポートされたページは、他のすべてのコンテンツとともに PageLoad で積極的にロードされます。このようなページに移動するときに追加の読み込みは発生しませんが、アプリの最初の読み込み時間も長くなります。静的にインポートされたページを追加するには、次のように行う必要があります。
// Import the default component
import SomePage from './SomePage' ;
// ...
export const RoutedContent = ( ) => {
return (
< Switch >
{ /* ... */ }
{ /* Define the route for a specific path */ }
< Route path = "/some-page" exact component = { SomePage } />
{ /* ... */ }
</ Switch >
) ;
}
動的にインポートされたページは、必要な場合にのみロードされます。これにより、最初のページ読み込みのサイズが減少し、アプリの読み込みが速くなります。これを実現するには、 React.Suspense
を使用します。例:
// Create a Lazy Loaded Page Component Import
const SomeAsyncPage = React . lazy ( ( ) => import ( './SomeAsyncPage' ) ) ;
// ...
export const RoutedContent = ( ) => {
return (
< Switch >
{ /* ... */ }
{ /*
Define the route and wrap the component in a React.Suspense loader.
The fallback prop might contain a component which will be displayed
when the page is loading.
*/ }
< Route path = "/some-async-page" >
< React . Suspense fallback = { < PageLoader /> } >
< SomeAsyncPage />
</ React . Suspense >
</ Route >
</ Switch >
) ;
}
場合によっては、ナビゲーションバーまたはサイドバーに追加のコンテンツを表示したい場合があります。これを行うには、カスタマイズされた Navbar/Sidebar コンポーネントを定義し、それを特定のルートにアタッチする必要があります。例:
import { SidebarAlternative } from './../layout/SidebarAlternative' ;
import { NavbarAlternative } from './../layout/NavbarAlternative' ;
// ...
export const RoutedNavbars = ( ) => (
< Switch >
{ /* Other Navbars: */ }
< Route
component = { NavbarAlternative }
path = "/some-custom-navbar-route"
/>
{ /* Default Navbar: */ }
< Route
component = { DefaultNavbar }
/>
</ Switch >
) ;
export const RoutedSidebars = ( ) => (
< Switch >
{ /* Other Sidebars: */ }
< Route
component = { SidebarAlternative }
path = "/some-custom-sidebar-route"
/>
{ /* Default Sidebar: */ }
< Route
component = { DefaultSidebar }
/>
</ Switch >
) ;
<Layout>
コンポーネントをラップする必要がある<ThemeProvider>
コンポーネントに、 initialStyle
とinitialColor
指定することで、サイドバーとナビゲーションバーのカラースキームを設定できます。
可能なinitialStyle
値:
light
dark
color
可能なinitialColor
値:
primary
success
info
warning
danger
indigo
purple
pink
yellow
コンポーネントのThemeConsumer
使用して、実行時に配色を変更できます。例:
// ...
import { ThemeContext } from './../components' ;
// ...
const ThemeSwitcher = ( ) => (
< ThemeConsumer >
( { onChangeTheme } ) = > (
< React . Fragment >
< Button onClick = { ( ) => onThemeChange ( { style : 'light' } ) } >
Switch to Light
</ Button >
< Button onClick = { ( ) => onThemeChange ( { style : 'dark' } ) } >
Switch to Dark
</ Button >
</ React . Fragment >
)
</ ThemeConsumer >
) ;
ThemeConsumer
によって提供されるオプション:
このダッシュボードで使用されているプラグイン: