สำหรับ Ionic Framework ( Framework สำหรับพัฒนา Mobile Application ด้วย HTML และ Javascript ) นั้นเดิมที่ เราต้องใช้ Angular ควบคู่กับ Ionic Framework แต่ปัจจุบันนี้เราสามารถใช้ Ionic คู่กับ ReactJs ได้แล้ว โดยในตัวอย่างนี้ จะแสดงการใช้งาน Ionic คู่กับ React Router
1. สร้างโปรเจคด้วยคำสั่ง npx create-react-app react_ionic
/* --------------- import component และ css ด่าง --------------------- */
import React from 'react';
import {
BrowserRouter ,
HashRouter,
Switch,
Route,
Link,
useParams,
useHistory ,
} from "react-router-dom";
import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar,IonButton } from '@ionic/react';
import '@ionic/react/css/core.css';
import '@ionic/react/css/normalize.css';
import '@ionic/react/css/structure.css';
import '@ionic/react/css/typography.css';
import '@ionic/react/css/padding.css';
import '@ionic/react/css/float-elements.css';
import '@ionic/react/css/text-alignment.css';
import '@ionic/react/css/text-transformation.css';
import '@ionic/react/css/flex-utils.css';
import '@ionic/react/css/display.css';
/* --------------- import component และ css ด่าง --------------------- */
//------ สร้างหน้า Home
function Home()
{
const history = useHistory();
return (<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>Home</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent className="ion-padding">
{/* สร้าง ปุ่ม ไปที่ หน้า about */}
<IonButton onClick={e => {
e.preventDefault();
history.push('/about');
}} expand="block">
About
</IonButton>
</IonContent>
</IonPage>);
}
//------ สร้างหน้า About
function About()
{
const history = useHistory();
return (<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>About</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent className="ion-padding">
{/* สร้าง ปุ่ม ไปที่ หน้า about */}
<IonButton onClick={e => {
e.preventDefault();
history.goBack();
}} expand="block">
Home
</IonButton>
</IonContent>
</IonPage>);
}
function App() {
return (
<HashRouter >
{/* สร้าง Roter หน้า Home และหน้า about */}
<Switch>
<Route exact path="/" children={<Home />}>
</Route>
<Route path="/about" children={<About />}>
</Route>
</Switch>
</HashRouter>
);
}
export default App;