[javascript] React Native와 React의 차이점은 무엇입니까?

호기심으로 React 를 배우기 시작했고 React와 React Native의 차이점을 알고 싶었지만 Google을 사용하여 만족스러운 답변을 찾을 수 없었습니다. React와 React Native는 같은 형식 인 것 같습니다. 그것들은 완전히 다른 문법을 가지고 있습니까?



답변

ReactJS 는 사용자 인터페이스 및 웹 애플리케이션 구축을 위해 프론트 엔드 웹과 서버에서 실행되는 것을 지원하는 JavaScript 라이브러리입니다.

React Native 는 기본 앱 구성 요소로 컴파일되는 모바일 프레임 워크로, ReactJS를 사용하여 구성 요소를 빌드하고 ReactJS를 구현할 수있는 JavaScript로 다양한 플랫폼 (iOS, Android 및 Windows Mobile)에 대한 기본 모바일 애플리케이션을 빌드 할 수 있습니다. 후드.

둘 다 JavaScript에 대한 JSX 구문 확장을 따릅니다.

둘 다 Facebook에 의해 공개 소스입니다.


답변

다음은 React 프로젝트 입니다.

Facebook에서 React 를 개발 하여 JavaScript가 가상 DOM 모델을 사용하여 웹 사이트 DOM을 더 빠르게 조작 할 수 있습니다.

DOM 전체 새로 고침은 React virtual-dom 모델 과 비교하여 속도가 느려서 페이지의 일부만 새로 고칩니다 (읽기 : 부분 새로 고침).

비디오 에서 알 수 있듯이 Facebook은 부분 새로 고침이 기존의 것보다 빠르다는 것을 즉시 이해했기 때문에 React를 발명하지 않았습니다. 원래 그들은 페이스 북 애플리케이션의 재 구축 시간을 단축 할 수있는 방법이 필요했고 운 좋게도 부분적인 DOM 리프레쉬에 생명을 불어 넣었다.

반응 네이티브 반응 의 결과입니다. JavaScript를 사용하여 기본 앱을 빌드하는 플랫폼입니다.

React native 이전에는 기본 앱을 작성하기 위해 Java for Android 또는 iPhone 및 iPad 용 Objective-C를 알아야했습니다.

React Native를 사용하면 JavaScript에서 기본 앱의 동작을 모방 할 수 있으며 결국 플랫폼 별 코드를 출력으로 얻게됩니다. 응용 프로그램을 더 최적화해야하는 경우 기본 코드 와 JavaScript를 혼합 할 수도 있습니다 .

비디오 에서 Olivia Bishop이 말했듯 이 React 네이티브 코드베이스 의 85 %가 플랫폼간에 공유 될 수 있습니다. 이들은 일반적으로 응용 프로그램에서 사용하는 구성 요소와 공통 논리입니다.

코드의 15 %는 플랫폼에 따라 다릅니다. 플랫폼 별 JavaScript는 플랫폼의 풍미를 제공하고 경험을 변화시킵니다.

멋진 점은이 플랫폼 별 코드입니다. 이미 작성되었으므로 사용하면됩니다.


답변

반응 :

React는 사용자 인터페이스를 구축하기위한 선언적이고 효율적이며 유연한 JavaScript 라이브러리입니다.

네이티브 반응 :

React Native를 사용하면 JavaScript 만 사용하여 모바일 앱을 빌드 할 수 있습니다. React와 동일한 디자인을 사용하여 선언적 구성 요소에서 풍부한 모바일 UI를 작성할 수 있습니다.
React Native를 사용하면 “모바일 웹 앱”, “HTML5 앱”또는 “하이브리드 앱”을 빌드하지 않습니다. Objective-C 또는 Java를 사용하여 빌드 된 앱과 구별 할 수없는 실제 모바일 앱을 빌드합니다. React Native는 일반 iOS 및 Android 앱과 동일한 기본 UI 빌딩 블록을 사용합니다. JavaScript와 React를 사용하여 이러한 구성 요소를 결합하면됩니다.
React Native를 사용하면 앱을 더 빠르게 구축 할 수 있습니다. 다시 컴파일하는 대신 앱을 즉시 다시로드 할 수 있습니다. 핫 리로딩을 사용하면 애플리케이션 상태를 유지하면서 새 코드를 실행할 수도 있습니다. 시도해보십시오-그것은 마술 같은 경험입니다.
React Native는 Objective-C, Java 또는 Swift로 작성된 구성 요소와 자연스럽게 결합됩니다. 애플리케이션의 몇 가지 측면을 최적화해야하는 경우 기본 코드로 간단하게 드롭 다운 할 수 있습니다. 또한 React Native에서 앱의 일부와 네이티브 코드를 사용하여 앱의 일부를 쉽게 빌드 할 수 있습니다. Facebook 앱이 작동하는 방식입니다.

기본적으로 ReactjavascriptJSX를 사용하여 웹 앱을 볼 수있는 UI 라이브러리 이며 React native 는 React 상단에 추가 라이브러리 iOS이며 Android장치 및 장치에 대한 기본 앱을 만듭니다 .

반응 코드 샘플 :

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = {date: new Date()};
  }

  componentDidMount() {
    this.timerID = setInterval(
      () => this.tick(),
      1000
    );
  }

  componentWillUnmount() {
    clearInterval(this.timerID);
  }

  tick() {
    this.setState({
      date: new Date()
    });
  }

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <h2>It is {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    );
  }
}

ReactDOM.render(
  <Clock />,
  document.getElementById('root')
);

네이티브 코드 샘플 반응 :

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class WhyReactNativeIsSoGreat extends Component {
  render() {
    return (
      <View>
        <Text>
          If you like React on the web, you'll like React Native.
        </Text>
        <Text>
          You just use native components like 'View' and 'Text',
          instead of web components like 'div' and 'span'.
        </Text>
      </View>
    );
  }
}

React에 대한 자세한 내용은 페이스 북 팀이 만든 공식 웹 사이트를 방문하십시오.

https://facebook.github.io/react

React Native 에 대한 자세한 내용은 아래 React native 웹 사이트를 방문하십시오.

https://facebook.github.io/react-native


답변

ReactJS는 UI 구성 요소의 계층 구조를 작성하기위한 프레임 워크입니다. 각 구성 요소에는 상태 및 소품이 있습니다. 소품을 통해 데이터가 최상위 구성 요소에서 하위 구성 요소로 흐릅니다. 상태는 이벤트 핸들러를 사용하여 최상위 컴포넌트에서 업데이트됩니다.

React native는 React 프레임 워크를 사용하여 모바일 앱용 컴포넌트를 빌드합니다. React native는 iOS 및 Android 플랫폼 모두에 대한 기본 구성 요소 세트를 제공합니다. React Native의 일부 구성 요소는 네비게이터, TabBar, 텍스트, TextInput,보기, ScrollView입니다. 이러한 구성 요소는 기본 iOS UIKit 및 Android UI 구성 요소를 내부적으로 사용합니다. React native는 ObjectiveC for iOS 및 Java for Android로 작성된 코드를 JavaScript 내에서 사용할 수있는 NativeModules를 허용합니다.


답변

첫째, 유사점 : React & React Native (RN)는 유연한 사용자 인터페이스를 만들도록 설계되었습니다. 이러한 프레임 워크에는 많은 이점이 있지만 가장 근본적인 점은 UI 개발을 위해 만들어 졌다는 것입니다. Facebook은 React 후 몇 년 후에 RN을 개발했습니다.

반응 :
페이스 북이 프레임 워크는 거의 태그가 “라고 이유를 당신의 HTML / XML,의 자바 스크립트 내부를 작성처럼 될 수 있도록 설계 JSX “(자바 스크립트 XML)와 익숙한 HTML과 같은 같은 태그와 유사 <div>하거나 <p>. React의 특징은 <MyFancyNavbar />RN에 존재하는 등의 사용자 지정 구성 요소를 나타내는 대문자 문자 태그입니다 . 그러나 React는 DOM을 사용 합니다 . DOM은 HTML에 존재하므로 웹 개발에 React가 사용됩니다.

네이티브 반응 :
RN은 HTML을 사용하지 않으므로 웹 개발에 사용되지 않습니다. 그것은 거의 다른 모든 것에 사용됩니다! 모바일 개발 (iOS 및 Android 모두), 스마트 기기 (예 : 시계, TV), 증강 현실 등. RN은 상호 작용할 DOM이 없으므로 React에 사용 된 것과 동일한 종류의 HTML 태그를 사용하는 대신 자체적으로 사용합니다. 그런 다음 다른 언어로 컴파일됩니다. 예를 들어, <div>RN 개발자 는 태그 대신 RN의 내장 <View>태그를 사용합니다.이 태그는 다른 기본 코드로 컴파일됩니다 (예 : android.viewAndroid 및 UIViewiOS).

요컨대, 그것들은 (UI 개발을 위해) 매우 유사하지만 다른 매체에 사용됩니다.


답변

  1. React-Native는 Javascript 코드의 80 %-90 %를 공유하는 Android 및 iOS 애플리케이션을 개발하기위한 프레임 워크입니다.

React.js는 웹 애플리케이션 개발을위한 상위 Javascript 라이브러리입니다.

  1. 당신 같은 태그를 사용하지만 <View>, <Text>매우 자주으로 반응-네이티브, React.js 같은 웹 html 태그 사용 <div> <h1> <h2>전용 웹 / 모바일 개발의 사전 동의어입니다.

  2. React.js의 경우 HTML 태그의 경로 렌더링을 위해 DOM이 필요하지만 모바일 애플리케이션의 경우 : React-Native는 AppRegistry를 사용하여 앱을 등록합니다.

React.js와 React-Native의 빠른 차이점 / 유사점에 대한 쉬운 설명이기를 바랍니다.


답변

우리는 그것들을 정확하게 비교할 수 없습니다. 있습니다 유스 케이스의 차이는 .

(2018 년 업데이트)


반응 JS

리 액트는 웹 개발 의 주요 초점 이다.

    • 가상 DOM은 페이지의 일부만 새로 고치기 때문에 React의 가상 DOM은 기존의 전체 새로 고침 모델보다 빠릅니다 .
    • React에서 코드 구성 요소재사용 하여 많은 시간을 절약 할 수 있습니다 . (React Native에서도 가능합니다.)
    • 비즈니스로서 : 서버에서 브라우저까지 페이지를 완전히 렌더링 하면 웹앱의 SEO향상됩니다 .
    • 그것은 디버깅 속도 향상 개발자의 삶을 쉽게.
    • Cordova 또는 Ionic과 같은 하이브리드 모바일 앱 개발을 사용하여 React로 모바일 앱을 빌드 할 수 있지만 React Native를 사용하여 모바일 앱을보다 효율적으로 구축하고 있습니다.

네이티브 반응

모바일 개발에 관심 이있는 React의 확장 .

    • 주요 초점은 모바일 사용자 인터페이스 에 관한 것 입니다.
    • iOS 및 Android 가 적용됩니다.
    • 재사용 가능한 React Native UI 구성 요소 및 모듈을 사용하면 하이브리드 앱을 기본적으로 렌더링 할 수 있습니다.
    • 기존 앱을 정밀 검사 할 필요가 없습니다. 당신이해야 할 모든입니다 추가는 기존 응용 프로그램의 코드에 기본 UI 구성 요소 반응 재 작성하지 않고.
    • HTML을 사용하여 앱을 렌더링하지 않습니다 . 비슷한 방식으로 작동하는 대체 구성 요소를 제공하므로 이해하기 어렵지 않습니다.
    • 코드가 HTML 페이지에서 렌더링되지 않기 때문에 이는 이전에 React 에서 사용한 모든 종류의 HTML, SVG 또는 Canvas를 렌더링하는 라이브러리를 재사용 할 수 없음을 의미합니다 .
    • React Native는 웹 요소로 만들어지지 않았으며 같은 방식으로 스타일을 지정할 수 없습니다. 안녕히 CSS 애니메이션!

잘만되면 나는 당신을 도왔습니다 🙂