私は React を好奇心から学び始め、ReactとReact Nativeの違いを知りたかったのですが、Googleを使って満足のいく答えを見つけることができませんでした。 ReactとReact Nativeは同じフォーマットを持っているようです。それらは完全に異なる構文を持っていますか?
ReactJS は、フロントエンドWebをサポートし、サーバー上で実行されることで、ユーザーインターフェイスとWebアプリケーションを構築するためのJavaScriptライブラリです。
React Native はネイティブアプリコンポーネントにコンパイルされるモバイルフレームワークで、異なるプラットフォーム(iOS、Android、Windows Mobile)用のネイティブモバイルアプリケーションをJavaScriptで構築でき、ReactJSを使用してコンポーネントを構築できます。フードの下でReactJSを実装します。
どちらもFacebookによってオープンソース化されています。
あなたが言ったように、Googleはあなたにこれを説明することができません、しかし、彼らがReactを発明したならば、Googleはとても幸せになるでしょう。
これがReactプロジェクトです( https://github.com/facebook/react )。
Facebookでは、彼らがReactを発明したので、JavaScriptは仮想DOMモデルを使用してウェブサイトDOMをより速く操作することができます。
DOMのフルリフレッシュは、ページの一部のみをリフレッシュする React virtual-domモデル と比較して遅くなります(パーシャルリフレッシュ)。
あなたがこの video から理解できるように、FacebookはReactを発明しませんでした。もともと彼らはFacebookアプリケーションの再構築時間を減らす方法を必要としていました、そして幸運にもこれは部分的なDOMのリフレッシュを活性化させました。
React native( https://github.com/facebook/react-native )はReactの結果にすぎません。 JavaScriptを使ってネイティブアプリを構築するためのプラットフォームです。
ネイティブアプリケーションを作成するには、React nativeより前にAndroid用のJava、またはiPhoneおよびiPad用のObjective-Cの知識が必要です。
React Nativeでは、ネイティブアプリの動作をJavaScriptで模倣することが可能です。そして最後に、プラットフォーム固有のコードを出力として取得します。アプリケーションをさらに最適化する必要がある場合は、ネイティブコードとJavaScriptを混在させることもできます。
Olivia Bishopが video で言ったように、React nativeコードベースの85%はプラットフォーム間で共有できます。これらは、アプリケーションが通常使用するコンポーネントと共通ロジックです。
コードの15%はプラットフォーム固有です。プラットフォーム固有のJavaScriptは、プラットフォームの特色を与えるものです(そして経験に違いをもたらします)。
素晴らしいのは、このプラットフォーム固有のコードです - 既に書かれているので、あなたはそれを使う必要があるだけです。
反応:
Reactは宣言的、効率的、そして柔軟なユーザーインターフェース構築用JavaScriptライブラリです。
ネイティブの反応:
React Nativeでは、JavaScriptのみを使用してモバイルアプリを構築できます。 Reactと同じデザインを使用しているため、宣言型コンポーネントからリッチなモバイルUIを作成できます。
React Nativeでは、「モバイルWebアプリ」、「HTML 5アプリ」、または「ハイブリッドアプリ」を構築することはありません。あなたは、Objective-CやJavaを使って構築されたアプリと区別がつかない本当のモバイルアプリを構築します。 React Nativeは、通常のiOSおよびAndroidアプリと同じ基本的なUI構成要素を使用しています。 JavaScriptとReactを使ってこれらの構成要素を組み合わせるだけです。
React Nativeを使用すると、アプリをより速く構築できます。再コンパイルする代わりに、すぐにアプリをリロードできます。ホットリロードを使用すると、アプリケーションの状態を維持しながら、新しいコードを実行することもできます。それを試してみる - それは魔法の経験です。
React NativeはObjective-C、Java、またはSwiftで書かれたコンポーネントとスムーズに結合します。アプリケーションのいくつかの側面を最適化する必要がある場合は、ネイティブコードにドロップするのが簡単です。 React Nativeでアプリの一部を構築したり、ネイティブコードを直接使用してアプリの一部を構築したりすることも簡単です。これがFacebookアプリの機能です。
したがって、基本的に React はWebアプリケーションのビュー用のUIライブラリです。 javascript および _ jsx _ 、 React native は追加機能です。 iOS
とAndroid
デバイス用のネイティブアプリを作るために、Reactの一番上にあるライブラリ。
反応 コードサンプル:
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 についての詳細は、facebookで公式ウェブサイトをご覧ください。
https://facebook.github.io/react
React Native の詳細については、React nativeのWebサイトを参照してください。
ReactJSは、UIコンポーネントの階層を構築するためのフレームワークです。各コンポーネントには状態と小道具があります。データはプロップを介して最上位コンポーネントから下位コンポーネントに流れます。状態は、イベントハンドラを使用して最上位コンポーネントで更新されます。
Reactネイティブは、モバイルアプリケーション用のコンポーネントを構築するためにReactフレームワークを使用します。 React nativeは、iOSとAndroidの両方のプラットフォーム用の基本的なコンポーネントセットを提供します。 React Nativeのコンポーネントには、Navigator、TabBar、Text、TextInput、View、ScrollViewがあります。これらのコンポーネントは、ネイティブのiOS UIKitおよびAndroid UIコンポーネントを内部的に使用しています。 React nativeでは、ObjectiveC for iOSおよびJava for Androidで記述されたコードをJavaScript内で使用できるNativeModuleも使用できます。
React.jsは、Webアプリケーションを開発するための親Javascriptライブラリです。
React-Nativeでは<View>
、<Text>
のようなタグを頻繁に使用しますが、React.jsは<div>
<h1>
<h2>
のようなWeb HTMLタグを使用します。これらはWeb /モバイル開発の辞書の同義語にすぎません。
React.jsの場合は、HTMLタグのパスレンダリングにDOMが必要ですが、モバイルアプリケーションの場合はReact-NativeはAppRegistryを使用してアプリを登録します。
これがReact.jsとReact-Nativeの違い/類似点の簡単な説明になることを願っています。
まず、類似点:反応と反応ネイティブ(RN)の両方が、開発者が柔軟なユーザーインターフェイスを作成できるように設計されました。これらのフレームワークには多くの利点がありますが、最も基本的なことはUI開発のために作られていることです。
React:Facebook(reactの数年後にRNを開発した)は、このフレームワークをHTML/XML内でJavaScriptを記述するように設計しました。タグが「JSX」(JavaScript XML)と呼ばれる理由(たとえば、<div>
や<p>
などの使い慣れたHTMLのようなタグ)。 Reactの特徴は、<MyFancyNavbar />
などのカスタムコンポーネントを示す大文字のタグです。これはRNにも当てはまります。ただし、それらの違いは、Reactが DOM を使用していることです。 DOMはHTMLに存在するため、ReactはWeb開発に使用されます。
React Native:RNはHTMLを使用しないため、Web開発には使用されません。それは...他のほとんどすべてに使用されます!モバイル開発(iOSとAndroidの両方)、スマートデバイス(時計、テレビなど)、拡張現実など。RNはやり取りするDOMを持たないため、Reactで使用されるのと同じ種類のHTMLタグを使用する代わりに、独自のその後、他の言語にコンパイルされるタグ。たとえば、RN開発者は<div>
タグの代わりに、RNの組み込み<View>
タグを使用します。これは、ボンネットの下で他のネイティブコードにコンパイルされます(例:AndroidのAndroid.view
; iOSのUIView
name__)。
要するに:それらは非常に似ています(UI開発用)が、異なる媒体に使用されます。
それらを正確に比較することはできません。 ユースケースの違いがあります。
(2018アップデート)
メインとしてfocus:Web Development
reactの拡張、モバイル開発
うまくいけば私はあなたを助けた:)
Reactはユーザーインターフェイスを構築するための宣言的、効率的、そして柔軟なJavaScriptライブラリです。あなたのレンダリングしたいものをReactに伝えます - そしてあなたのデータが変わったときにReactは正しいコンポーネントを効率的に更新しレンダリングします。ここで、ShoppingListはReactコンポーネントクラス、またはReactコンポーネントタイプです。
React Nativeアプリは本物のモバイルアプリです。 React Nativeでは、「モバイルWebアプリ」、「HTML 5アプリ」、または「ハイブリッドアプリ」を構築することはありません。あなたは、Objective-CやJavaを使って構築されたアプリと区別がつかない本当のモバイルアプリを構築します。 React Nativeは、通常のiOSおよびAndroidアプリと同じ基本的なUI構成要素を使用しています。
React Native は主にJavaScriptで開発されています。つまり、開始する必要があるコードのほとんどはプラットフォーム間で共有できます。 React Nativeはネイティブコンポーネントを使用してレンダリングします。 Reactネイティブアプリは、それがターゲットとするプラットフォーム、iOS用のObjective-CまたはSwift、Android用のJavaなどに必要な言語で開発されています。記述されたコードはプラットフォーム間で共有されず、動作は異なります。彼らは、プラットフォームによって提供されるすべての機能に制限なく直接アクセスできます。
React は、ユーザーインターフェイスを構築するためにFacebookによって開発されたオープンソースのJavaScriptライブラリです。 Webおよびモバイルアプリのビューレイヤを処理するために使用されます。 ReactJSは、現在再利用可能なUIコンポーネントを作成するために使用されています。現在、it分野で最も人気のあるJavaScriptライブラリの1つであり、強力な基盤と大きなコミュニティがあります。ReactJSを学ぶ場合、JavaScript、HTML5、およびCSSに関する知識が必要です。
ReactJSは、リアクティブパターンに基づいて分離されたコンポーネントを構築するためのコアフレームワークです。MVCからのVと考えることができます。 。
ReactNativeは、一般的なAndroidおよびiOSプラットフォーム用のセットコンポーネントを持つことを目的としたもう1つの層です。そのため、コードはReactJSと基本的にはReactJSと同じに見えますが、モバイルプラットフォームではネイティブに読み込まれます。 OSに応じてJava/Objective-C/Swiftを使用してより複雑でプラットフォーム関連のAPIをブリッジし、React内で使用することもできます。
React Jsは、Reactを使ってより速いWebアプリケーションを開発し実行することができるJavascriptライブラリです。
React Nativeを使用すると、JavaScriptのみを使用してモバイルアプリケーションを構築できます。これはモバイルアプリケーション開発に使用されます。詳細はこちら https://facebook.github.io/react-native/docs/getting-started.html
React-Nativeは、ReactJSがWebサイトに使用できるJavaScriptライブラリであるフレームワークです。
React-nativeはデフォルトのコアコンポーネント(画像、テキスト)を提供します。ここでReactは多数のコンポーネントを提供し、それらを連携させます。
React は React Native および React DOM の基本的な抽象概念です。したがって、React Nativeを使用する場合はReact ...も必要です。ReactNativeの代わりにWebでも同様です。 React DOMが必要になります。
Reactは基本的な抽象概念であるため、一般的な構文とワークフローは同じですが、使用するコンポーネントは非常に異なるため、これらの違いを学習する必要があります。 React(基本抽象化)を知っていれば、他のプログラミング言語、構文、およびワークフローを学ぶことなくプラットフォーム間の違いを簡単に学ぶことができます。
簡単に言えば、ReactとReact nativeはユーザーインターフェースを設計する場合を除いて同じ設計原則に従います。
とにかく、それはモバイルとウェブのためのユーザーインターフェースを構築するための優れたライブラリです。
コンポーネントのライフサイクルと他のすべての鐘と笛に関しては、ほとんど同じです。
主な違いは、使用されているJSXマークアップです。 Reactはhtmlに似たものを使います。もう1つは、ビューを表示するためにreact-nativeによって使用されるマークアップです。
React Nativeはモバイルアプリケーション用で、ReactはWebサイト用です(フロントエンド)。どちらもFacebookによって発明されたフレームワークです。 React Nativeはクロスプラットフォーム開発フレームワークであり、IOSとAndroidの両方でほぼ同じコードを書くことができ、それは機能します。私は個人的にReact Nativeについてもっと多くのことを知っているので、ここでそれを残します。
_ react _ は、Facebookのような大/小インタフェースWebアプリケーションを構築するためのJavascriptライブラリです。
REACT NATIVE は、Android、IOS、およびWindows Phoneでネイティブモバイルアプリケーションを開発するためのJavascriptフレームワークです。
どちらもFacebookによってオープンソース化されています。
ReactJS は javascriptライブラリ であり、Webインターフェースを構築するために使用されます。あなたはwebpackのようなバンドラーを必要とし、あなたがあなたのウェブサイトを構築するのに必要であろうモジュールをインストールしようとするでしょう。
React Native は javascriptフレームワーク であり、マルチプラットフォームアプリケーション(iOSやAndroidなど)の作成に必要なものがすべて付属しています。アプリをビルドしてデプロイするには、xcodeとAndroid Studioがインストールされている必要があります。
ReactJSとは異なり、React-NativeはHTMLを使用しませんが、アプリケーションを構築するためにiosとAndroidの両方で使用できる同様のコンポーネントを使用します。これらのコンポーネントは、実際のネイティブコンポーネントを使用してIOSおよびAndroidアプリを構築します。このため、React-Nativeアプリは他のHybrid開発プラットフォームとは違ってリアルに感じられます。また、iOSとAndroidで同じユーザーインターフェイスを作成する必要がないため、コンポーネントによってコードの再利用性も向上します。
これが私が知っている違いです:
React Js-React JSはフロントエンドjavascriptライブラリであり、フレームワークではなく大きなライブラリです
ReactNative-React Nativeは、オープンソースのモバイルアプリケーションフレームワークです。
要約:Web開発用のReact.jsとモバイルアプリケーション開発用のReactネイティブ
reactjsはブラウザdomではなくreact-domを使用しますが、react nativeは仮想domを使用しますが、どちらも同じシンタックスを使用します。つまり、reactjsを使用できる場合はreact nativeを使用できます。あなたの反応ナビゲーションや他の一般的なライブラリのようにそれらは共通しています。
簡単に言えば、ReactJSはホスト環境(ブラウザ、モバイル、サーバー、デスクトップなど)に従ってレンダリングするものを返す親ライブラリです。レンダリングとは別に、ライフサイクルフックなどの他の方法も提供します。
ブラウザでは、DOM要素をレンダリングするために別のライブラリreact-domを使用します。モバイルでは、React-Nativeコンポーネントを使用してプラットフォーム固有の(IOSとAndroidの両方)ネイティブUIコンポーネントをレンダリングします。そう、
反応+反応-dom =ウェブ開発
反応する+反応ネイティブ=モバイル開発
React JsはHTML Domを使って操作しています。しかしReact nativeはモバイル(iOS/Android)ネイティブUIコンポーネントで操作しています。
React NativeはReactの結果であり、JavaScriptを使ってネイティブアプリケーションを構築することができます。 Reactと同じデザインを使用することで、宣言型コンポーネントから豊富なモバイルUIを構築できます。これは、JSXとして知られるJavaScriptとXML風のマークアップを使用してモバイルアプリのインターフェースを開発します。
React Nativeを使用すると、AndroidおよびiOS用のネイティブモバイルアプリを作成することができます(Java、Objective-C、またはSwiftを使用して作成されたものと同様)。このReactフレームワークでは、Javascriptを使用してネイティブアプリの動作を模倣し、プラットフォーム固有のコードを出力として取得することができます。モバイルアプリ開発におけるReact Nativeの優れた利点には、次のものがあります。
複数プラットフォーム用の単一環境:React Nativeは、クロスプラットフォームのネイティブアプリケーション開発を容易にします。つまり、あるプラットフォーム用に書かれたコードを別のプラットフォームで使用することができます。ルックアンドフィールに妥協することなく、React Nativeはコスト効率の高いモバイルアプリを構築し、開発者が2つの異なるプラットフォーム用に異なるAPIを統合して新しいロジックを作成する負担を軽減できるようにします。
ネイティブコードとReactコンポーネントを組み合わせる:開発者は、Objective-C、Java、またはSwiftのコンポーネントをReactネイティブコードと組み合わせることで、アプリの効率を最適化できます。 React Nativeでアプリコンポーネントの一部とネイティブコードを使用してその一部を構築してからそれらをマージするのは簡単です。