सरल लॉगिन फ़ॉर्म बनाना
ईमेल और पासवर्ड वाला फ़ॉर्म बनाएँ, input की लंबाई मान्य करें, अमान्य प्रविष्टियों के लिए त्रुटि संदेश दिखाएँ और सबमिट करने पर नकली लॉगिन फ़ंक्शन कॉल करें।
सरल लॉगिन फ़ॉर्म बनाना, CoddyKit पर React Native Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह React Native Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Native Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
लॉगिन फ़ॉर्म की आवश्यकताएँ
लॉगिन फ़ॉर्म लगभग हर मोबाइल ऐप की शुरुआती स्क्रीन में से एक होता है। अच्छे कार्यान्वयन में ये बातें होनी चाहिए: ईमेल और पासवर्ड फ़ील्ड रेंडर करना, इनपुट का सत्यापन करना (खाली न होना, मान्य ईमेल प्रारूप, पासवर्ड की न्यूनतम लंबाई), प्रत्येक इनपुट के नीचे फ़ील्ड-स्तरीय त्रुटि संदेश दिखाना, प्रमाणीकरण अनुरोध के दौरान लोडिंग संकेतक दिखाना, क्रेडेंशियल गलत होने पर सर्वर त्रुटि दिखाना और सफलता पर मुख्य ऐप पर सफलतापूर्वक जाना। यह पाठ एक वास्तविक सुविधा में TextInput, नियंत्रित घटकों, सत्यापन लॉजिक और मूलभूत स्टेट प्रबंधन को लागू करता है।
// State needed for the login form:
// - email: string
// - password: string
// - emailError: string
// - passwordError: string
// - isLoading: boolean
// - serverError: string
// Derived:
// - isSubmitDisabled: !email || !password || isLoadingफ़ॉर्म स्टेट और संरचना
useState से फ़ॉर्म के स्टेट वैरिएबल सेट करें। प्रत्येक फ़ील्ड के लिए अलग स्टेट रखने से उन्हें स्वतंत्र रूप से अपडेट और सत्यापित करना आसान होता है। त्रुटि संदेशों को इनपुट मानों के साथ रखें, ताकि सत्यापन उन्हें स्वतंत्र रूप से सेट और साफ़ कर सके। isLoading फ़्लैग सबमिट बटन को निष्क्रिय करता है और प्रमाणीकरण नेटवर्क अनुरोध के दौरान स्पिनर दिखाता है, जिससे दोहरी सबमिशन रुकती है। उपयोगकर्ता द्वारा किसी भी इनपुट मान को बदलने पर serverError साफ़ करें, ताकि उन्हें नए सिरे से प्रयास करने का अवसर मिले।
import { useState } from 'react';
function useLoginForm() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [emailError, setEmailError] = useState('');
const [passwordError, setPasswordError] = useState('');
const [serverError, setServerError] = useState('');
const [isLoading, setIsLoading] = useState(false);
function handleEmailChange(text) {
setEmail(text);
if (serverError) setServerError('');
if (emailError) setEmailError('');
}
function handlePasswordChange(text) {
setPassword(text);
if (serverError) setServerError('');
if (passwordError) setPasswordError('');
}
return { email, password, emailError, passwordError, serverError, isLoading, handleEmailChange, handlePasswordChange, setEmailError, setPasswordError, setServerError, setIsLoading };
}सत्यापन लॉजिक
एक validate() फ़ंक्शन लिखें, जो प्रत्येक फ़ील्ड की जाँच करके त्रुटि संदेश सेट करे। ईमेल के लिए जाँच करें कि वह खाली न हो और मूलभूत ईमेल regex पैटर्न से मेल खाता हो। पासवर्ड के लिए जाँच करें कि उसकी लंबाई कम से कम 8 वर्ण हो। यह फ़ंक्शन बूलियन लौटाता है — सभी फ़ील्ड सही होने पर true। सत्यापन केवल तब चलाएँ जब उपयोगकर्ता सबमिट करने का प्रयास करे (हर कीस्ट्रोक पर नहीं, क्योंकि यह परेशान करने वाला होता है)। सत्यापन विफल होने पर कोई नेटवर्क अनुरोध करने से पहले सबमिट हैंडलर से तुरंत लौटें। यह पैटर्न सत्यापन लॉजिक को UI और API कॉल से अलग रखता है।
function validateForm({ email, password, setEmailError, setPasswordError }) {
let valid = true;
// Email validation
if (!email.trim()) {
setEmailError('Email is required');
valid = false;
} else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
setEmailError('Enter a valid email address');
valid = false;
} else {
setEmailError('');
}
// Password validation
if (!password) {
setPasswordError('Password is required');
valid = false;
} else if (password.length < 8) {
setPasswordError('Password must be at least 8 characters');
valid = false;
} else {
setPasswordError('');
}
return valid;
}सबमिट हैंडलर
सबमिट हैंडलर सत्यापन, API कॉल और त्रुटि प्रबंधन का समन्वय करता है। पहले यह फ़ॉर्म का सत्यापन करता है और अमान्य होने पर तुरंत लौटता है। फिर isLoading को true सेट करता है, नकली (या वास्तविक) प्रमाणीकरण अनुरोध भेजता है और प्रतिक्रिया संभालता है। सफलता पर होम स्क्रीन पर जाएँ। विफलता (गलत क्रेडेंशियल) पर सर्वर त्रुटि संदेश दिखाएँ। अनुरोध से अनपेक्षित त्रुटि आने पर भी स्पिनर गायब हो, यह सुनिश्चित करने के लिए finally ब्लॉक में हमेशा isLoading रीसेट करें।
async function handleSubmit({
email, password,
setEmailError, setPasswordError,
setServerError, setIsLoading,
onSuccess
}) {
if (!validateForm({ email, password, setEmailError, setPasswordError })) return;
setIsLoading(true);
setServerError('');
try {
// Replace with your real auth API call:
const result = await mockLogin(email, password);
if (result.success) {
onSuccess(result.user);
} else {
setServerError('Invalid email or password. Please try again.');
}
} catch (error) {
setServerError('Network error. Please check your connection.');
} finally {
setIsLoading(false);
}
}
async function mockLogin(email, password) {
await new Promise(r => setTimeout(r, 1200)); // simulate network
if (email === 'test@example.com' && password === 'password123') {
return { success: true, user: { name: 'Test User' } };
}
return { success: false };
}त्रुटि वाला स्टाइल किया गया इनपुट फ़ील्ड
एक पुन: उपयोग योग्य FormField घटक बनाएँ, जो ऊपर लेबल और नीचे त्रुटि संदेश के साथ स्टाइल किए गए TextInput को रैप करे। त्रुटि होने पर बॉर्डर का रंग लाल हो जाए। FormField सभी संबंधित TextInput प्रॉप्स के साथ label और error स्ट्रिंग भी स्वीकार करता है। रैपर घटक का उपयोग करने से फ़ॉर्म के प्रत्येक इनपुट के लिए लेबल/त्रुटि/बॉर्डर पैटर्न दोहराना नहीं पड़ता। त्रुटि टेक्स्ट स्थिति के अनुसार रेंडर करें — त्रुटि न होने पर कोई खाली स्थान न दिखे।
import { View, Text, TextInput, StyleSheet } from 'react-native';
export default function FormField({ label, error, style, ...inputProps }) {
return (
<View style={styles.container}>
<Text style={styles.label}>{label}</Text>
<TextInput
style={[
styles.input,
error ? styles.inputError : styles.inputNormal,
style,
]}
placeholderTextColor='#aaa'
{...inputProps}
/>
{error ? <Text style={styles.error}>{error}</Text> : null}
</View>
);
}
const styles = StyleSheet.create({
container: { gap: 4 },
label: { fontSize: 14, fontWeight: '600', color: '#555' },
input: { borderWidth: 1.5, borderRadius: 10, paddingHorizontal: 14, paddingVertical: 13, fontSize: 16, backgroundColor: '#fff' },
inputNormal: { borderColor: '#ddd' },
inputError: { borderColor: '#e74c3c', backgroundColor: '#fff8f8' },
error: { fontSize: 12, color: '#e74c3c' },
});लॉगिन स्क्रीन UI को जोड़ना
फ़ॉर्म को एक साथ रखें: सबसे ऊपर लोगो या ऐप का नाम, ईमेल और पासवर्ड के FormField घटक, सर्वर त्रुटि बैनर, सबमिट बटन (लोड होने पर स्पिनर दिखाने वाला) और सबसे नीचे 'साइन अप' लिंक। सब कुछ KeyboardAvoidingView में रैप करें, ताकि कीबोर्ड इनपुट फ़ील्ड को न ढके। अंदर ScrollView का उपयोग करें, ताकि बाहर टैप करने पर कीबोर्ड बंद हो जाए। डिज़ाइन साफ़-सुथरे, लंबवत केंद्रित कार्ड लेआउट का अनुसरण करता है, जो किसी भी फ़ोन स्क्रीन आकार पर स्वाभाविक दिखता है।
import { KeyboardAvoidingView, ScrollView, View, Text, TouchableOpacity, ActivityIndicator, Platform, StyleSheet } from 'react-native';
import FormField from './FormField';
export default function LoginScreen({ onSuccess, onNavigateToSignUp }) {
const { email, password, emailError, passwordError, serverError, isLoading, handleEmailChange, handlePasswordChange, setEmailError, setPasswordError, setServerError, setIsLoading } = useLoginForm();
function submit() {
handleSubmit({ email, password, setEmailError, setPasswordError, setServerError, setIsLoading, onSuccess });
}
return (
<KeyboardAvoidingView style={{ flex: 1 }} behavior={Platform.OS === 'ios' ? 'padding' : 'height'}>
<ScrollView contentContainerStyle={styles.content} keyboardShouldPersistTaps='handled'>
<Text style={styles.title}>Welcome Back</Text>
<Text style={styles.subtitle}>Sign in to your account</Text>
{serverError ? <Text style={styles.serverError}>{serverError}</Text> : null}
<FormField label='Email' value={email} onChangeText={handleEmailChange} error={emailError} keyboardType='email-address' autoCapitalize='none' autoCorrect={false} returnKeyType='next' />
<FormField label='Password' value={password} onChangeText={handlePasswordChange} error={passwordError} secureTextEntry autoCapitalize='none' returnKeyType='done' onSubmitEditing={submit} />
<TouchableOpacity style={[styles.btn, isLoading && styles.btnLoading]} onPress={submit} disabled={isLoading}>
{isLoading ? <ActivityIndicator color='#fff' /> : <Text style={styles.btnText}>Sign In</Text>}
</TouchableOpacity>
</ScrollView>
</KeyboardAvoidingView>
);
}
const styles = StyleSheet.create({
content: { flexGrow: 1, justifyContent: 'center', padding: 24, gap: 16 },
title: { fontSize: 30, fontWeight: '800', color: '#111' },
subtitle: { fontSize: 16, color: '#666', marginBottom: 8 },
serverError: { backgroundColor: '#fff0f0', borderWidth: 1, borderColor: '#fcc', borderRadius: 10, padding: 12, fontSize: 14, color: '#c0392b' },
btn: { backgroundColor: '#4f86f7', padding: 16, borderRadius: 12, alignItems: 'center', marginTop: 8 },
btnLoading: { backgroundColor: '#aac4f7' },
btnText: { color: '#fff', fontWeight: '700', fontSize: 16 },
});पासवर्ड भूल गए लिंक
पासवर्ड फ़ील्ड के नीचे 'पासवर्ड भूल गए?' लिंक जोड़ें। यह एक TouchableOpacity है, जिसमें Text होता है और जो नेविगेशन कॉलबैक प्रॉप को कॉल करता है। इसे alignSelf: 'flex-end' से रखें, ताकि यह पासवर्ड फ़ील्ड के नीचे दाईं ओर दिखाई दे — यह एक सामान्य और परिचित स्थान है। लिंक पासवर्ड रीसेट प्रक्रिया खोलता है (ईमेल दर्ज करना → रीसेट लिंक प्राप्त करना), जो आमतौर पर अलग स्क्रीन या मोडल होती है। लॉगिन स्क्रीन को साइन-इन प्रक्रिया पर केंद्रित रखें और पासवर्ड रीसेट को उसके अपने घटक को सौंपें।
import { TouchableOpacity, Text, View, StyleSheet } from 'react-native';
export default function ForgotPasswordLink({ onPress }) {
return (
<TouchableOpacity
onPress={onPress}
hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
style={styles.link}
accessibilityRole='link'
accessibilityLabel='Forgot password? Tap to reset'
>
<Text style={styles.linkText}>Forgot Password?</Text>
</TouchableOpacity>
);
}
const styles = StyleSheet.create({
link: { alignSelf: 'flex-end' },
linkText: { color: '#4f86f7', fontSize: 14, fontWeight: '500' },
});साइन अप नेविगेशन लिंक
अधिकांश लॉगिन स्क्रीन में नीचे 'खाता नहीं है? साइन अप करें' टेक्स्ट लिंक होता है। इसे सामान्य और लिंक किए गए टेक्स्ट वाली एक रो के रूप में बनाएँ। सादे टेक्स्ट और टैप किए जा सकने वाले लिंक को एक ही पंक्ति में मिलाने के लिए नेस्टेड Text घटकों का उपयोग करें। यह दो अलग-अलग बटनों की तुलना में बेहतर है, क्योंकि यह अधिक साफ़ दिखता है और उपयोगकर्ताओं की अपेक्षित टाइपोग्राफ़िक परंपरा से मेल खाता है। टैप किए जा सकने वाले हिस्से को onPress और लिंक स्टाइलिंग वाले Text में रैप करें और उसे बाहरी Text के अंदर नेस्ट करें।
import { Text, View, StyleSheet } from 'react-native';
export default function SignUpLink({ onNavigate }) {
return (
<View style={styles.row}>
<Text style={styles.text}>
Don't have an account?{' '}
<Text
style={styles.link}
onPress={onNavigate}
accessibilityRole='link'
>
Sign up
</Text>
</Text>
</View>
);
}
const styles = StyleSheet.create({
row: { alignItems: 'center', marginTop: 8 },
text: { fontSize: 15, color: '#666' },
link: { color: '#4f86f7', fontWeight: '600' },
});लोडिंग और सफलता की स्थितियाँ
लॉगिन प्रक्रिया में कई अलग-अलग स्थितियाँ होती हैं, जिन्हें दृश्य रूप से दिखाना आवश्यक है। API कॉल के दौरान (isLoading: true) बटन के टेक्स्ट को ActivityIndicator से बदलें और दोहरे अनुरोध रोकने के लिए बटन को निष्क्रिय करें। सफलता पर तुरंत दूसरी स्क्रीन पर जाएँ — ऐसा सफलता संदेश न दिखाएँ, जिसे उपयोगकर्ता नेविगेशन से पहले थोड़ी देर के लिए ही देखे। विफलता पर सर्वर त्रुटि संदेश प्रमुखता से दिखाएँ और बटन फिर से सक्रिय करें, ताकि उपयोगकर्ता दोबारा प्रयास कर सके। त्रुटि कार्ड पर शेक एनिमेशन एक बेहतर अनुभव देने वाला स्पर्श है, जो उपयोगकर्ता को स्क्रॉल कराए बिना त्रुटि की ओर ध्यान खींचता है।
import { ActivityIndicator, TouchableOpacity, Text, StyleSheet } from 'react-native';
export default function SubmitButton({ isLoading, onPress, disabled }) {
return (
<TouchableOpacity
onPress={onPress}
disabled={disabled || isLoading}
style={[
styles.btn,
(disabled && !isLoading) && styles.btnDisabled,
isLoading && styles.btnLoading,
]}
activeOpacity={0.8}
>
{isLoading
? <ActivityIndicator size='small' color='#fff' />
: <Text style={styles.label}>Sign In</Text>
}
</TouchableOpacity>
);
}
const styles = StyleSheet.create({
btn: { backgroundColor: '#4f86f7', padding: 16, borderRadius: 12, alignItems: 'center', minHeight: 52 },
btnDisabled: { backgroundColor: '#c4d8ff' },
btnLoading: { backgroundColor: '#3a72e0' },
label: { color: '#fff', fontWeight: '700', fontSize: 16 },
});बायोमेट्रिक प्रमाणीकरण विकल्प
expo-local-authentication का उपयोग करके लॉगिन स्क्रीन में बायोमेट्रिक प्रमाणीकरण विकल्प (Face ID / Touch ID / फ़िंगरप्रिंट) जोड़कर उसे बेहतर बनाएँ। जाँच करें कि डिवाइस बायोमेट्रिक सुविधा का समर्थन करता है और उपयोगकर्ता ने क्रेडेंशियल पंजीकृत किए हैं या नहीं; इसके बाद बायोमेट्रिक लॉगिन बटन दिखाएँ। सफलता पर Keychain/SecureStore से सुरक्षित क्रेडेंशियल प्राप्त करके लॉगिन करें। बायोमेट्रिक लॉगिन उन लौटने वाले उपयोगकर्ताओं के अनुभव को काफ़ी बेहतर बनाता है, जो हर सत्र में अपना पासवर्ड टाइप नहीं करना चाहते।
import * as LocalAuthentication from 'expo-local-authentication';
import * as SecureStore from 'expo-secure-store';
// Install: npx expo install expo-local-authentication expo-secure-store
import { TouchableOpacity, Text } from 'react-native';
import { useEffect, useState } from 'react';
function useBiometrics() {
const [available, setAvailable] = useState(false);
useEffect(() => {
LocalAuthentication.hasHardwareAsync().then(has => {
if (has) LocalAuthentication.isEnrolledAsync().then(setAvailable);
});
}, []);
return available;
}
export default function BiometricButton({ onSuccess }) {
const biometricAvailable = useBiometrics();
if (!biometricAvailable) return null;
async function authenticate() {
const result = await LocalAuthentication.authenticateAsync({ promptMessage: 'Sign in to your account' });
if (result.success) {
const credentials = await SecureStore.getItemAsync('savedCredentials');
if (credentials) onSuccess(JSON.parse(credentials));
}
}
return (
<TouchableOpacity onPress={authenticate} style={{ alignItems: 'center', padding: 16 }}>
<Text style={{ fontSize: 36 }}>👤</Text>
<Text style={{ color: '#4f86f7', fontSize: 14, marginTop: 4 }}>Use Face ID</Text>
</TouchableOpacity>
);
}सोशल लॉगिन बटन
कई ऐप ईमेल/पासवर्ड से लॉगिन के विकल्प के रूप में Apple के साथ साइन इन और Google के साथ साइन इन की सुविधा देते हैं। जब आप किसी भी तृतीय-पक्ष सोशल लॉगिन की सुविधा देते हैं, तो Apple के App Store के दिशानिर्देशों के अनुसार Apple से साइन इन करना आवश्यक है। Apple के लिए expo-apple-authentication और Google के लिए @react-native-google-signin/google-signin का उपयोग करें। इन बटनों को प्लेटफ़ॉर्म के डिज़ाइन दिशानिर्देशों का पालन करना चाहिए — Apple बटन के रूप-रंग के लिए कड़े विनिर्देश देता है। सोशल लॉगिन बटनों को ईमेल/पासवर्ड फ़ॉर्म के ऊपर, 'OR' विभाजक के साथ रखें, ताकि उपयोगकर्ताओं को विधियों के बीच स्पष्ट विकल्प मिल सके।
import * as AppleAuthentication from 'expo-apple-authentication';
// npx expo install expo-apple-authentication
import { Platform, View, Text, StyleSheet } from 'react-native';
export default function SocialLogins({ onAppleSuccess, onGoogleSuccess }) {
return (
<View style={styles.container}>
{Platform.OS === 'ios' && (
<AppleAuthentication.AppleAuthenticationButton
buttonType={AppleAuthentication.AppleAuthenticationButtonType.SIGN_IN}
buttonStyle={AppleAuthentication.AppleAuthenticationButtonStyle.BLACK}
cornerRadius={10}
style={styles.appleBtn}
onPress={async () => {
try {
const credential = await AppleAuthentication.signInAsync({
requestedScopes: [
AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
AppleAuthentication.AppleAuthenticationScope.EMAIL,
],
});
onAppleSuccess(credential);
} catch (e) {
if (e.code !== 'ERR_CANCELED') console.error(e);
}
}}
/>
)}
<View style={styles.divider}>
<View style={styles.line} />
<Text style={styles.orText}>OR</Text>
<View style={styles.line} />
</View>
</View>
);
}
const styles = StyleSheet.create({
container: { gap: 16 },
appleBtn: { width: '100%', height: 48 },
divider: { flexDirection: 'row', alignItems: 'center', gap: 12 },
line: { flex: 1, height: 1, backgroundColor: '#e0e0e0' },
orText: { color: '#999', fontWeight: '500' },
});त्वरित जाँच
इस पाठ से React Native मोबाइल विकास की अवधारणाओं की अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस पाठ में आपने सीखा: सबमिट करने पर सत्यापन टाइप करते समय समय से पहले दिखने वाले त्रुटि संदेशों से बचाता है, isLoading state प्रमाणीकरण अनुरोधों के दौरान सबमिट बटन को निष्क्रिय करता है और स्पिनर दिखाता है, तथा FormField wrapper components लेबल, इनपुट और त्रुटि प्रदर्शन को एक ही स्थान पर रखते हैं, जिससे उन्हें अलग-अलग फ़ॉर्म में दोबारा उपयोग किया जा सकता है। अब हम React Navigation के साथ कई स्क्रीन वाले नेविगेशन को समझेंगे।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “सरल लॉगिन फ़ॉर्म बनाना” पाठ निःशुल्क है?
हाँ — React Native Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “सरल लॉगिन फ़ॉर्म बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। React Native Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“सरल लॉगिन फ़ॉर्म बनाना” में मैं क्या सीखूँगा?
ईमेल और पासवर्ड वाला फ़ॉर्म बनाएँ, input की लंबाई मान्य करें, अमान्य प्रविष्टियों के लिए त्रुटि संदेश दिखाएँ और सबमिट करने पर नकली लॉगिन फ़ंक्शन कॉल करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Native Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या React Native Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Native Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“सरल लॉगिन फ़ॉर्म बनाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस React Native Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर React Native Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- TextInput की मूल बातें और कीबोर्ड प्रकार
- TouchableOpacity और Pressable से टैप हैंडलर
- टॉगल, स्विच और चेकबॉक्स
- सरल लॉगिन फ़ॉर्म बनाना