-
React-Native 와 React의 차이자료 정리 2020. 5. 12. 17:44
그러면 일단 React.js 와 React-Native가 무엇인지 알아야겠죠?
React?
페이스북에서 만든 프론트엔드 JavaScript 라이브러리입니다.
React-Native?
React의 방식으로 네이티브 앱을 개발할 수 있는 페이스북의 오픈 소스 프레임워크입니다.
React와 React-Native의 동작
React
React는 Dom이 생성이 되고 난 뒤에 Virtual Dom 을 이용하여 변화된 곳을 캐치하여 변화된 Dom으로 변경합니다.
여기에 Dom의 작동 방식과 함께 Virtual Dom을 사용한 이용하는 이유를 친절하게 설명되어 있는 글입니다.
React-Native
React Native 코드를 실행하게 되면 Bridge를 이용하여 ios, android 각각의 네이티브 언어에 접근 할 수 있게 합니다.
React와 React Native 차이점
1. 화면 출력을 React 는 ReactDom을 사용하지만 React Native는 AppRegistry 사용합니다.
React
import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; ReactDOM.render(<App />, document.getElementById('root'));
React Native
import { AppRegistry } from 'react-native'; import App from './App'; import { name as appName } from './app.json'; AppRegistry.registerComponent(appName, () => App);
2. 두개 다 JSX 문법을 사용하지만 React는 HTML문법을 사용하지만 React Native는 HTML 문법을 사용하지 않습니다.
React
import React from 'react'; class HelloMessage extends React.Component { render() { return ( <div> <h1>React</h1> Hello React! </div> ); } }
React-Native
import React from 'react'; import {View, Text} from 'react-native'; class HelloMessage extends React.Component { render() { return ( <View> <Text>React-Native Hello React-Native!</Text> </View> ); } }
3. React-Native는 기존의 CSS를 지원하지 않습니다.
flexbox를 이용한 레이아웃 제작을 제공합니다.
React-Native Style
import React, { Component } from 'react'; import {View , StyleSheet} from 'react-native'; class Card extends Component { render(){ return ( <View style={styles.Card}> <View style={styles.Card_title} /> <View style={styles.Card_details} /> </View> )} } const styles = StyleSheet.create({ Card: { flex: 1, }, Card_title: { flex: 0.5, backgroundColor: 'blue', }, Card_details: { flex: 8, backgroundColor: 'green', } }) export default Card;
위의 코드의 결과 화면입니다.
'자료 정리' 카테고리의 다른 글
express 에러 처리 하기 (0) 2020.06.28 Cookie와 Storage 이란? (0) 2020.05.11 CSS 기초 부터 (0) 2020.04.07 axios 와 fetch의 다른 점 (0) 2020.02.29 Sequelize 1 : N 관계 설정, Cascade 적용 (0) 2020.02.26