티스토리 뷰
framework/ReactNative
갓난애기도 배울 수 있는 React Native 가이드 ③ – 버튼, TextInput, 이벤트 핸들링 완전정복
octo54 2025. 4. 14. 10:38반응형
갓난애기도 배울 수 있는 React Native 가이드 ③ – 버튼, TextInput, 이벤트 핸들링 완전정복
드디어 앱과 사용자 사이의 “대화”가 시작됩니다!
이번 글에서는 버튼을 누르거나 텍스트를 입력하면 앱이 반응하는 기본 인터랙션을 실습해보겠습니다.
이 기능들만 있어도 간단한 계산기, 로그인 창, 메모 앱을 만들 수 있어요.
✅ 1. 버튼 만들기 – Button과 TouchableOpacity
✅ 가장 기본적인 버튼
import { Button } from 'react-native';
<Button
title="눌러보세요!"
onPress={() => alert('버튼이 눌렸습니다!')}
/>
- title: 버튼에 보일 텍스트
- onPress: 클릭 시 실행할 함수
✅ 더 다양한 스타일을 원한다면? TouchableOpacity
import { TouchableOpacity, Text } from 'react-native';
<TouchableOpacity
onPress={() => alert('이 버튼도 클릭됨!')}
style={{
backgroundColor: '#4CAF50',
padding: 12,
borderRadius: 8,
}}
>
<Text style={{ color: 'white' }}>커스텀 버튼</Text>
</TouchableOpacity>
✅ 커스텀 버튼을 만들 때는 TouchableOpacity 또는 Pressable을 사용합니다.
✅ 2. 사용자 입력 받기 – TextInput
✅ 기본 사용법
import { TextInput } from 'react-native';
<TextInput
placeholder="이름을 입력하세요"
style={{
borderWidth: 1,
borderColor: '#ccc',
padding: 10,
marginBottom: 10,
width: 200,
}}
/>
- placeholder: 힌트 텍스트
- value: 현재 입력된 값
- onChangeText: 값이 변경될 때 호출됨
✅ useState와 함께 사용하기
반응형
import React, { useState } from 'react';
import { TextInput, Text, View } from 'react-native';
const InputExample = () => {
const [name, setName] = useState('');
return (
<View>
<TextInput
placeholder="이름 입력"
onChangeText={(text) => setName(text)}
value={name}
style={{
borderBottomWidth: 1,
marginBottom: 12,
}}
/>
<Text>당신의 이름은: {name}</Text>
</View>
);
};
export default InputExample;
✅ 3. 실습 예제: 간단한 인사앱 만들기
📄 App.js
import React, { useState } from 'react';
import { View, Text, TextInput, Button, StyleSheet } from 'react-native';
export default function App() {
const [name, setName] = useState('');
const [greeting, setGreeting] = useState('');
const handlePress = () => {
if (name.trim() === '') {
setGreeting('이름을 입력해주세요.');
} else {
setGreeting(`안녕하세요, ${name}님!`);
}
};
return (
<View style={styles.container}>
<Text style={styles.title}>React Native 인사 앱</Text>
<TextInput
placeholder="이름을 입력하세요"
value={name}
onChangeText={setName}
style={styles.input}
/>
<Button title="인사하기" onPress={handlePress} />
{greeting !== '' && <Text style={styles.greeting}>{greeting}</Text>}
</View>
);
}
const styles = StyleSheet.create({
container: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: 20 },
title: { fontSize: 24, marginBottom: 20 },
input: {
borderWidth: 1,
width: '100%',
padding: 10,
marginBottom: 10,
borderRadius: 6,
borderColor: '#ccc',
},
greeting: { fontSize: 18, marginTop: 20, color: '#2b2b2b' },
});
📱 앱 동작
- 이름을 입력하고
- 버튼을 누르면
- "안녕하세요, OOO님!" 출력!
✅ 4. 이번 글에서 배운 핵심
기능 개념
버튼 클릭 | onPress |
입력값 받기 | TextInput + useState |
상태 저장 | useState() |
조건에 따라 표시 | {조건 && JSX} 구문 |
📘 다음 글 예고
갓난애기도 배울 수 있는 React Native 가이드 ④ – FlatList로 리스트 뿌리기 (ToDo 앱 준비)
할 일 목록처럼 반복되는 데이터를 보여주는 법을 배워봅니다.
리스트 구현은 실무에서 가장 중요한 기능 중 하나입니다!
React Native TextInput 사용법,React Native Button 예제,React Native 이벤트 핸들링,React Native 입력 처리,React Native useState 예제,React Native 사용자 입력,React Native 커스텀 버튼,React Native 기본 앱,React Native props state,React Native 인사앱 실습
'framework > ReactNative' 카테고리의 다른 글
갓난애기도 배울 수 있는 React Native 가이드 ⑤ – 화면 전환과 Stack Navigator 도입하기 (0) | 2025.04.16 |
---|---|
갓난애기도 배울 수 있는 React Native 가이드 ④ – FlatList로 리스트 뿌리기 (ToDo 앱 준비하기) (1) | 2025.04.15 |
갓난애기도 배울 수 있는 React Native 가이드 ② – JSX, 컴포넌트, 스타일링 한 번에 끝내기 (0) | 2025.04.12 |
갓난애기도 배울 수 있는 React Native 가이드 ① – React Native CLI 설치부터 첫 실행까지 (실무용 환경 구축) (0) | 2025.04.11 |
React Native CLI vs Expo CLI – 무엇을 선택해야 할까? (1) | 2025.04.10 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백엔드개발
- REACT
- nodejs
- llm
- AI챗봇
- 개발블로그
- 백엔드
- rag
- CI/CD
- Next.js
- nextJS
- LangChain
- 관리자
- Prisma
- Webpack
- kotlin
- Python
- AI 자동화
- 스마트 컨트랙트
- fastapi
- 프론트엔드
- seo 최적화 10개
- PostgreSQL
- Docker
- 웹개발
- NestJS
- SEO최적화
- Ktor
- gatsbyjs
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함
반응형