Bottom Tab ও Drawer Navigation
📱 React Native File-based Bottom Tab ও Drawer Navigation (TypeScript)
React Native অ্যাপে একাধিক স্ক্রিনের মধ্যে সহজে যাতায়াত করার জন্য Navigation ব্যবহার করা হয়। এই টিউটোরিয়ালে আমরা শিখবো কীভাবে File-based structure ব্যবহার করে Bottom Tab ও Drawer Navigation তৈরি করা যায় – সম্পূর্ণ TypeScript সহ।
🔰 File-based Navigation কী?
File-based navigation মানে হচ্ছে ফোল্ডার ও ফাইলের নাম অনুযায়ী স্ক্রিন ও রাউট অর্গানাইজ করা। এতে বড় অ্যাপেও কোড পরিষ্কার ও মেইনটেইনেবল থাকে।
src/ ├─ navigation/ │ ├─ BottomTabs.tsx │ ├─ DrawerNavigator.tsx │ └─ RootNavigator.tsx ├─ screens/ │ ├─ HomeScreen.tsx │ ├─ ProfileScreen.tsx │ └─ SettingsScreen.tsx └─ App.tsx
📦 প্রয়োজনীয় Packages Install
npm install @react-navigation/native npm install @react-navigation/bottom-tabs npm install @react-navigation/drawer npm install react-native-gesture-handler npm install react-native-reanimated npm install react-native-screens npm install react-native-safe-area-context
👉 এগুলো React Navigation এর জন্য আবশ্যক।
📁 Bottom Tab Navigation (File-based)
Bottom Tab সাধারণত অ্যাপের নিচে থাকে এবং প্রধান স্ক্রিনগুলোতে দ্রুত যাওয়ার সুবিধা দেয়।
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import HomeScreen from '../screens/HomeScreen';
import ProfileScreen from '../screens/ProfileScreen';
export type BottomTabParamList = {
Home: undefined;
Profile: undefined;
};
const Tab = createBottomTabNavigator<BottomTabParamList>();
export default function BottomTabs() {
return (
<Tab.Navigator>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen name="Profile" component={ProfileScreen} />
</Tab.Navigator>
);
}
✅ এখানে TypeScript type ব্যবহার করা হয়েছে
✅ প্রতিটি Tab একটি আলাদা Screen ফাইল লোড করছে
📲 Output:
অ্যাপের নিচে Home ও Profile নামের দুটি Tab দেখা যাবে। ট্যাপ করলে স্ক্রিন পরিবর্তন হবে।
📁 Drawer Navigation (File-based)
Drawer Navigation সাধারণত বাম দিক থেকে slide করে আসে এবং অতিরিক্ত অপশন দেখাতে ব্যবহৃত হয়।
import { createDrawerNavigator } from '@react-navigation/drawer';
import BottomTabs from './BottomTabs';
import SettingsScreen from '../screens/SettingsScreen';
export type DrawerParamList = {
Tabs: undefined;
Settings: undefined;
};
const Drawer = createDrawerNavigator<DrawerParamList>();
export default function DrawerNavigator() {
return (
<Drawer.Navigator>
<Drawer.Screen name="Tabs" component={BottomTabs} />
<Drawer.Screen name="Settings" component={SettingsScreen} />
</Drawer.Navigator>
);
}
👉 এখানে Drawer এর ভিতরে Bottom Tab রাখা হয়েছে
👉 এটি বাস্তব প্রজেক্টে সবচেয়ে বেশি ব্যবহৃত প্যাটার্ন
📲 Output:
বাম দিক থেকে swipe করলে একটি Drawer খুলবে যেখানে Tabs ও Settings অপশন থাকবে।
🔗 Root Navigator (App Entry Point)
import { NavigationContainer } from '@react-navigation/native';
import DrawerNavigator from './navigation/DrawerNavigator';
export default function App() {
return (
<NavigationContainer>
<DrawerNavigator />
</NavigationContainer>
);
}
✅ কেন এই File-based Navigation ব্যবহার করবেন?
- কোড পরিষ্কার ও স্কেলেবল থাকে
- Team project-এ কাজ করা সহজ
- TypeScript support থাকায় bug কম হয়
- Production-ready architecture
✨ Summary
এই টিউটোরিয়ালে আপনি শিখলেন:
- File-based Navigation Structure
- Bottom Tab Navigation (TypeScript)
- Drawer Navigation এর সাথে Tab Integration
- Real-world App Navigation Pattern