If we know how to create React web apps but want to develop mobile apps, we can use the Ionic framework.
In this article, we’ll look at how to get started with mobile development with the Ionic framework with React.
Avatars
We can add avatars with the IonAvatar component.
For example, we can write:
import React from 'react';
import { IonAvatar, IonContent } from '@ionic/react';
import './Tab1.css';
const Tab1: React.FC = () => {
return (
<IonContent>
<IonAvatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonAvatar>
</IonContent>
);
};
export default Tab1;
to add an avatar with an image.
Also, we can put the avatar in a chip:
import React from 'react';
import { IonAvatar, IonChip, IonContent, IonLabel } from '@ionic/react';
import './Tab1.css';
const Tab1: React.FC = () => {
return (
<IonContent>
<IonChip>
<IonAvatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonAvatar>
<IonLabel>Chip Avatar</IonLabel>
</IonChip>
</IonContent>
);
};
export default Tab1;
Images
We can add an image with the IonImg component.
For example, we can write:
import React from 'react';
import { IonContent, IonImg, IonItem, IonLabel, IonList, IonThumbnail } from '@ionic/react';
import './Tab1.css';
interface Item {
src: string;
text: string;
};
const items: Item[] = [{
src: 'http://placekitten.com/g/200/300',
text: 'cat'
}];
const Tab1: React.FC = () => {
return (
<IonContent>
<IonList>
{items.map((image, i) => (
<IonItem key={i}>
<IonThumbnail slot="start">
<IonImg src={image.src} />
</IonThumbnail>
<IonLabel>{image.text}</IonLabel>
</IonItem>
))}
</IonList>
</IonContent>
);
};
export default Tab1;
We add the IonThumbnail component to show the image thumbnail.
Thumbnail
We can also use the IonThumbnail component with an img element.
For example, we can write:
import React from 'react';
import { IonContent, IonThumbnail } from '@ionic/react';
import './Tab1.css';
const Tab1: React.FC = () => {
return (
<IonContent>
<IonThumbnail>
<img src="http://placekitten.com/g/200/300" />
</IonThumbnail>
</IonContent>
);
};
export default Tab1;
to show the img as a thumbnail.
Modal
We can add modals with the IonModal component.
For example, we can write:
import React, { useState } from 'react';
import { IonButton, IonContent, IonModal } from '@ionic/react';
import './Tab1.css';
const Tab1: React.FC = () => {
const [showModal, setShowModal] = useState(false);
return (
<IonContent>
<IonModal isOpen={showModal} cssClass='my-custom-class'>
<p>This is modal content</p>
<IonButton onClick={() => setShowModal(false)}>Close Modal</IonButton>
</IonModal>
<IonButton onClick={() => setShowModal(true)}>Show Modal</IonButton>
</IonContent>
);
};
export default Tab1;
to add the modal to our app.
isOpen takes the open state of the modal.
cssClass lets us add a class name to make styling easy.
setShowModal sets display state of the modal.
Backdrop
We can add a backdrop with the IonBackdrop component.
For example, we can write:
import React from 'react';
import { IonBackdrop, IonContent } from '@ionic/react';
import './Tab1.css';
const Tab1: React.FC = () => {
return (
<IonContent>
<IonBackdrop />
</IonContent>
);
};
export default Tab1;
to add the backdrop.
Also, we can change how the backdrop event is propagated, visibility, and whether it’s tappable with some props:
import React from 'react';
import { IonBackdrop, IonContent } from '@ionic/react';
import './Tab1.css';
const Tab1: React.FC = () => {
return (
<IonContent>
<IonBackdrop stopPropagation={false} visible tappable />
</IonContent>
);
};
export default Tab1;
Conclusion
We can add avatars, thumbnails, modals, and backdrops with Ionic React.