React学習(一)-create-react-app
9161 ワード
前言
現在、フロントエンドで人気のある3つのフレームワークVue、Angular、Reactは、Web開発者にとって、すでに見慣れない言葉ではありません.
三者は業務の最終的な目的を実現しても一致することができるが、それぞれ特色があり、その中のいかなる枠組みも、個人的には博大で奥深いと思っているが、輪は少しでもよく、勉強しなければならない内容はたくさんあり、私も簡単に味わうだけだ.
时には、仕事のプロジェクトの需要のため、自分で各技术のスタックを切り替える时、しばらくの时间が役に立たない限り、少し熟知していないで、结局自分の功力が足りないことを认めなければなりません
本文は何の教程ではありませんて、ただ自分の学习の过程の中のいくつかの総括と思考として、いっしょに学习して、共に成长します~
本文はここから~
Reactって何?
ユーザーインタフェースを構築するためのjavascriptライブラリ、MVCアーキテクチャのV層宣言プログラミング(目的を達成するには、何をすべきか、具体的には指定しないが、以下のコードに示す) データプログラミングに向けて、データを構築すればいいです.reactは自動的にウェブサイトを構築してあげます.データを図面として理解することができます.図面ができたら、Reactは自動的にこの図面と結びつけて、このビルを構築して、ページ全体のDOMを構築することができます.
データが何なのか、ページに何が表示されているのか、この宣言的な開発は、ReactプログラミングがもたらすメリットであるDOM操作を大幅に節約するのに役立ちます.命令式プログラミング(jQuery操作DOMのように、ページを作成して、DOMにどのようにマウントするか、どのようにするかを少し教えて、JQ、オリジナルでも命令式プログラミングで、すべてDOM操作をして、要素を取得して、要素をバインドして、操作を実行しています) 関数式プログラミング:書くのはすべていくつかの関数で、もたらすメリットは、メンテナンスが比較的に容易で、1つの関数が比較的に大きい時、分割することができて、すべての関数はそれぞれその職を司って、フロントエンドの自動化テスト(配列の中のいくつかのmap、reduce、findなどの方法の応用は関数式プログラミングです) ビューレイヤフレーム(大規模なプロジェクトでは、Reactだけではだめです.データ層のフレームワークと協力して、コンポーネント間の親子コンポーネントの値伝達の問題を解決しなければなりません.Reactは自分をビュー層のフレームワークに定義します.何の問題も解決できるわけではありません.データとページレンダリングの問題を解決するのに役立ちます.コンポーネント間でどのように値を伝達するかは、他のコンポーネントに渡します.
小型プロジェクトではReactの親子コンポーネントを介して値を伝達することができるが、大型プロジェクトでは、flux、redux、moboxのようなデータ層フレームワークを使用するだけでは十分ではないため、学習コストも比較的高い.
Reactは何ができるの? Webアプリケーション(Webサイト、pc端末、モバイル端末など、例えば:知乎、簡書など) を書くデスクトップクライアントアプリケーション(vscodeまたは一部のレポートソフトウェアがウィンドウを携帯するアプリケーションと同様) webApp--react native,ハイブリッド開発アプリケーション サーバ側アプリケーション(java,phpなどのバックエンド言語でできること、reactでもできる) あなたが思わなかった応用だけで、実現できない技術はありません...
Reactプロジェクトを初期化
ぜんちじょうけん
コマンドラインダウン(windowsにおけるDOS CMDダウンまたはgitツール)、アップルMacコンピュータは持参したTerminalを使用することができ、Linuxユーザーにとってコマンドラインの動作ダウンは言うまでもなく、ここではWindows開発ダウンを例に挙げる
ダウンロードインストールNodeJS(React自体はNode.jsに依存していませんが、プロジェクトに必要な依存パッケージ/ツール、Node.jsのサポートが必要です)、ローカルでNodeをインストールすると、デフォルトではnpmパッケージ管理ツールがインストールされます.
cmdまたはgitコマンドラインの下で、Nodeとnpmがインストールに成功したかどうかを検出し、npmがパッケージをダウンロードするのが遅い場合は、国内の淘宝のcnpmを使用することもできます
もちろん、cnpmをインストールして、国内の地止を使って、依存パッケージをダウンロードするのは少し速いです
cnpmをインストールした後、npmと使用しても何の違いもありません.
chromeブラウザ(アプリケーションストアでReact Developer Toolsデバッグツールをダウンロード)
create-react-app足場ツール
create-react-app(reactアプリケーションの作成)npmによって発行されたインストールパッケージであり、nodejsがインストールされた後、コマンド端末の下でnpmまたはcnpmコマンドを実行し、create-react-appという足場ツールをグローバルにインストールするコマンドでもある.
create-react-app足場ツールをインストールした後にcreate-react-appコマンドを実行します.このコマンドは、現在のディレクトリの下で指定したパラメータ名のアプリケーションディレクトリを作成します.reactプロジェクトを作成するには、3つの方法があります.1つは、create-react-appアプリケーション名です.この方法を推奨します.
方式2:npm init react-app my-first-react-app
方法3:yarn,yarn create react-app my-react-appを使用する
方法4:npx create-react-appアプリケーション名は、方法1と等価です.npx create-react-appmy-appを実行すると、最新バージョンのCreate React Appが自動的にインストールされます.create-react-appをグローバルにインストールしたことがある場合は、グローバルにアンインストールしてください.
注意事項アプリケーション名には大文字を含めることはできません(アルパカ式ではなく、小文字のみ、例えば以下に示す . より速くなります.
npmのミラーソースの表示
宝を洗う鏡像の源に修正します
create-react-app作成プロジェクト
以上のコマンドはreactプロジェクトアプリケーションを作成し、このディレクトリの下で自動的にアプリケーションフレームワークのコード構造を作成します.
srcでサブディレクトリを作成できます.リビルドを高速化するには
注意:Webpackはsrcのファイルのみを処理します.JSファイルとCSSファイルをsrcに置く必要があります.そうしないとWebpackはそれらを見ません.
この
準備が整うと、npm startコマンドを実行すると、ローカル開発モードのサービスが起動し、自動的にWebページが開き、ローカル停止を指します.http://localhost:3000下の図のように、自分で起動したポート番号を基準にします.
次に、お気に入りのコードエディタでプロジェクトを開きます.これはこのセクションの最も重要な内容です.
Reactのコンポーネント
reactで重要なアイデアはコンポーネント(Component)によってアプリケーションを開発することであり、コンポーネントとは、ある特定の機能を完成させることができる独立した、再利用可能なコード(ページの一部)を指す.
コンポーネントベースの応用開発は広く使われているソフトウェア開発モデルであり、分けて治める方法で、一つの大きな応用をいくつかの小さなコンポーネントに分解し、各コンポーネントはある小さな範囲の特定の機能にしか注目していないが、コンポーネントを組み合わせることで、一つの機能の膨大な応用を構成することができる.
適用は、他のコンポーネントをレンダリングするコンポーネントにすぎません.
reactアプリケーションはコンポーネントから構成されているとも言えますが、コンポーネントをブラウザに新しいHTMLタグを認識させる方法と理解することができます.コンポーネントを実現するメリットは、コンポーネント間のデータストリームなど、オリジナルのHTMLタグの機能を拡張することです.
AngularJSを使ったことがあれば,コンポーネントを類似命令の概念として理解することができ,現在の開発モデルではコンポーネントベースの開発が非常に流行している.
reactはユーザーインタラクティブコンポーネントの構築に非常に適しています
1つのReactアプリケーションは実際にはコンポーネントからなるツリーであり,実際には他の2つのフレームワーク(vue,Angular)も同様である.
このツリーのルートノードでは、最上位レベルのコンポーネントがアプリケーション自体であり、ブラウザが起動したり、アプリケーションを起動したりするときにレンダリングされます.
コンポーネントはツリー構造で構成されているため、各コンポーネントがレンダリングされると、下位コンポーネントが再帰的にレンダリングされます.
Reactの特徴仮想DOM DOM diffアルゴリズムでは、ページ全体をレンダリングせずに差分化された部分だけが更新され、効率が向上します.アセンブリ化 ページをいくつかのコンポーネントに分けて、コンポーネントの中に論理構造とスタイルコンポーネントが含まれているのは自分の論理だけで、コンポーネントを更新する時予測することができて、全体のページを維持して複数のコンポーネントを分割するのに役立ち、再利用することができます一方向データストリーム(親コンポーネントは子コンポーネントに値を渡すことができますが、子コンポーネントは親コンポーネントしか使用できません)、子コンポーネントはこの値を直接書き換えることができず、一方向に伝えることしかできませんが、逆に修正することはできません.この目的を達成するには、子コンポーネントは親コンポーネントを呼び出す方法で、親コンポーネントで自分を変えることで操作します.メンテナンスコードが便利) は、他のフレームワーク(Jq,Angular等) と併存することができる.
データは、最上位コンポーネントからサブコンポーネントに渡されるデータ制御可能
reactアプリケーションの基本フローを書く
実はreactだけでなくvueもAngularも、従う流れは同じです.
プロダクトマネージャが提供するプロトタイプ図やUIデザイナーが提供する設計原稿に基づいて、まずコードを書き始めるのではなく、ページに基づいて、大きさや細さによって、ページをいくつかのコンポーネントに分割します.
ページの内容をグループ化して、抽象的に1つのコンポーネントになって、上から下まで、私たちの応用を組み合わせて、それによって1つの完全なソフトウェアシステムの応用を構成します
creact-react-app足場から学んだはすべてjsで、以前は内容(html)、積層様式(css)、行為(js)にこだわって分離して、この分離は物理層ファイルの分離だけで、1つの全体と見なすならば、cssはjsと同じように、モジュールの形式でjsの裏面に埋め込むことができる である.がコンポーネントを構成する態様 .
まとめ
本文は主にreactが何なのか、creact-react-app足場ツールを通じてreact初期化のプロジェクトを構築し、その中でreactアプリケーションを初期化し、多くの方法がある.
その中で最も重要なのは、プロジェクトディレクトリファイルの意味を初期化し、reactコンポーネントを構築する方法と、reactのコンポーネント、reactの特徴、reactアプリケーションの基本的な流れを書くことです.初期化プロジェクトから、reactプログラミング方式を学びました.
現在、フロントエンドで人気のある3つのフレームワークVue、Angular、Reactは、Web開発者にとって、すでに見慣れない言葉ではありません.
三者は業務の最終的な目的を実現しても一致することができるが、それぞれ特色があり、その中のいかなる枠組みも、個人的には博大で奥深いと思っているが、輪は少しでもよく、勉強しなければならない内容はたくさんあり、私も簡単に味わうだけだ.
时には、仕事のプロジェクトの需要のため、自分で各技术のスタックを切り替える时、しばらくの时间が役に立たない限り、少し熟知していないで、结局自分の功力が足りないことを认めなければなりません
本文は何の教程ではありませんて、ただ自分の学习の过程の中のいくつかの総括と思考として、いっしょに学习して、共に成长します~
本文はここから~
Reactって何?
ユーザーインタフェースを構築するためのjavascriptライブラリ、MVCアーキテクチャのV層
データが何なのか、ページに何が表示されているのか、この宣言的な開発は、ReactプログラミングがもたらすメリットであるDOM操作を大幅に節約するのに役立ちます.
/**
*
* : , ,
* toLowerCase
* map ,
*/
let toLowerCase = arr => arr.map(function(item) {
return item.toLowerCase();
})
let aToCasesA = ['SUIBICHUANJI','ITCLANCODER', 'ZHONGGUO', 'BEIJING', 'AGE'];
let aToCasesB = toLowerCase(aToCasesA);
console.log(aToCasesA); // ["SUIBICHUANJI", "ITCLANCODER", "ZHONGGUO", "BEIJING", "AGE"]
console.log(aToCasesB); // ["suibichuanji", "itclancoder", "zhongguo", "beijing", "age"]
/*
* :
* , , ,
,
*/
var aToCasesA = ['SUIBICHUANJI', 'ITCLANCODER', 'ZHONGGUO', 'BEIJING', 'AGE'];
function toLowerCase(arr) {
var res = [];
for(var i = 0; i < arr.length; i++) {
res.push(arr[i].toLowerCase());
}
return res;
}
var aToCasesB = toLowerCase(aToCasesA);
console.log(aToCasesA); // ["SUIBICHUANJI", "ITCLANCODER", "ZHONGGUO", "BEIJING", "AGE"]
console.log(aToCasesB); // ["suibichuanji", "itclancoder", "zhongguo", "beijing", "age"]
小型プロジェクトではReactの親子コンポーネントを介して値を伝達することができるが、大型プロジェクトでは、flux、redux、moboxのようなデータ層フレームワークを使用するだけでは十分ではないため、学習コストも比較的高い.
Reactは何ができるの?
Reactプロジェクトを初期化
ぜんちじょうけん
コマンドラインダウン(windowsにおけるDOS CMDダウンまたはgitツール)、アップルMacコンピュータは持参したTerminalを使用することができ、Linuxユーザーにとってコマンドラインの動作ダウンは言うまでもなく、ここではWindows開発ダウンを例に挙げる
ダウンロードインストールNodeJS(React自体はNode.jsに依存していませんが、プロジェクトに必要な依存パッケージ/ツール、Node.jsのサポートが必要です)、ローカルでNodeをインストールすると、デフォルトではnpmパッケージ管理ツールがインストールされます.
cmdまたはgitコマンドラインの下で、Nodeとnpmがインストールに成功したかどうかを検出し、npmがパッケージをダウンロードするのが遅い場合は、国内の淘宝のcnpmを使用することもできます
D:\ \2019>node -v
v10.13.0
D:\ \2019>npm -v
6.4.1
もちろん、cnpmをインストールして、国内の地止を使って、依存パッケージをダウンロードするのは少し速いです
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpmをインストールした後、npmと使用しても何の違いもありません.
chromeブラウザ(アプリケーションストアでReact Developer Toolsデバッグツールをダウンロード)
create-react-app足場ツール
create-react-app(reactアプリケーションの作成)npmによって発行されたインストールパッケージであり、nodejsがインストールされた後、コマンド端末の下でnpmまたはcnpmコマンドを実行し、create-react-appという足場ツールをグローバルにインストールするコマンドでもある.
D:\ \2019 npm install --global create-react-app
D:\ \2019 cnpm install -g create-react-app
-g --global
create-react-app足場ツールをインストールした後にcreate-react-appコマンドを実行します.このコマンドは、現在のディレクトリの下で指定したパラメータ名のアプリケーションディレクトリを作成します.reactプロジェクトを作成するには、3つの方法があります.1つは、create-react-appアプリケーション名です.この方法を推奨します.
D:\ \2019 create-react-app myfirstreactapp
D:\ \2019 cd myfirstreactapp
D:\ \2019 npm start
方式2:npm init react-app my-first-react-app
D:\ \2019 npm init react-app myfirstreactapp
D:\ \2019 cd myfirstreactapp
D:\ \2019 npm start
方法3:yarn,yarn create react-app my-react-appを使用する
D:\ \2019 yarn create react-app myfirstreactapp
D:\ \2019 cd myfirstreactapp
D:\ \2019 npm start
方法4:npx create-react-appアプリケーション名は、方法1と等価です.npx create-react-appmy-appを実行すると、最新バージョンのCreate React Appが自動的にインストールされます.create-react-appをグローバルにインストールしたことがある場合は、グローバルにアンインストールしてください.
npx create-react-app myfirstreactapp
注意事項
D:\ \2019 create-react-app myFirstReactApp X
D:\ \2019 a project called "myFirstReactApp" because of npm naming restrictions
* name can no longer contain capital letters
npx create-react-app
コマンドを使用してreactアプリケーションの作成に失敗した場合、淘宝ミラーを変更し、国内ダウンロードに置き換え、変更が完了した後、npmまたはcnpmおよびいくつかの他のコマンドを使用すると、ダウンロード依存パッケージは多くのnpmのミラーソースの表示
D:\ \2019 npm config get registry
// :https://registry.npmjs.org/
宝を洗う鏡像の源に修正します
D:\ \2019 npm config set registry https://registry.npm.taobao.org
create-react-app作成プロジェクト
D:\ \2019 npx create-react-app
以上のコマンドはreactプロジェクトアプリケーションを作成し、このディレクトリの下で自動的にアプリケーションフレームワークのコード構造を作成します.
srcでサブディレクトリを作成できます.リビルドを高速化するには
注意:Webpackはsrcのファイルのみを処理します.JSファイルとCSSファイルをsrcに置く必要があります.そうしないとWebpackはそれらを見ません.
この
create-react-app
ツールを使用して作成されたアプリケーションは、面倒な手動構成作業を避けることができます.react技術はwebpackツールに依存しています.これも技術です.準備が整うと、npm startコマンドを実行すると、ローカル開発モードのサービスが起動し、自動的にWebページが開き、ローカル停止を指します.http://localhost:3000下の図のように、自分で起動したポート番号を基準にします.
次に、お気に入りのコードエディタでプロジェクトを開きます.これはこのセクションの最も重要な内容です.
myfirstreactapp
├── package-lock.json // , git, npm install , , , 、 , package-lock.json , , npm install
├── package.json // , , , , , , ,
├── public
│ ├── favicon.ico // icon
│ ├── index.html // ,
│ └── manifest.json // app , , icons, , , , 、 、 , android manifest.xlm
├── README.md //
└── src //
├── App.css // App
├── App.js // App , react
├── App.test.js // App
├── index.css // index
├── index.js // , , App ,App App.js
├── logo.svg // ,
└── serviceWorker.js // app ,
Reactのコンポーネント
reactで重要なアイデアはコンポーネント(Component)によってアプリケーションを開発することであり、コンポーネントとは、ある特定の機能を完成させることができる独立した、再利用可能なコード(ページの一部)を指す.
コンポーネントベースの応用開発は広く使われているソフトウェア開発モデルであり、分けて治める方法で、一つの大きな応用をいくつかの小さなコンポーネントに分解し、各コンポーネントはある小さな範囲の特定の機能にしか注目していないが、コンポーネントを組み合わせることで、一つの機能の膨大な応用を構成することができる.
適用は、他のコンポーネントをレンダリングするコンポーネントにすぎません.
reactアプリケーションはコンポーネントから構成されているとも言えますが、コンポーネントをブラウザに新しいHTMLタグを認識させる方法と理解することができます.コンポーネントを実現するメリットは、コンポーネント間のデータストリームなど、オリジナルのHTMLタグの機能を拡張することです.
AngularJSを使ったことがあれば,コンポーネントを類似命令の概念として理解することができ,現在の開発モデルではコンポーネントベースの開発が非常に流行している.
reactはユーザーインタラクティブコンポーネントの構築に非常に適しています
1つのReactアプリケーションは実際にはコンポーネントからなるツリーであり,実際には他の2つのフレームワーク(vue,Angular)も同様である.
このツリーのルートノードでは、最上位レベルのコンポーネントがアプリケーション自体であり、ブラウザが起動したり、アプリケーションを起動したりするときにレンダリングされます.
コンポーネントはツリー構造で構成されているため、各コンポーネントがレンダリングされると、下位コンポーネントが再帰的にレンダリングされます.
Reactの特徴
データは、最上位コンポーネントからサブコンポーネントに渡されるデータ制御可能
reactアプリケーションの基本フローを書く
実はreactだけでなくvueもAngularも、従う流れは同じです.
プロダクトマネージャが提供するプロトタイプ図やUIデザイナーが提供する設計原稿に基づいて、まずコードを書き始めるのではなく、ページに基づいて、大きさや細さによって、ページをいくつかのコンポーネントに分割します.
ページの内容をグループ化して、抽象的に1つのコンポーネントになって、上から下まで、私たちの応用を組み合わせて、それによって1つの完全なソフトウェアシステムの応用を構成します
creact-react-app足場から学んだ
まとめ
本文は主にreactが何なのか、creact-react-app足場ツールを通じてreact初期化のプロジェクトを構築し、その中でreactアプリケーションを初期化し、多くの方法がある.
その中で最も重要なのは、プロジェクトディレクトリファイルの意味を初期化し、reactコンポーネントを構築する方法と、reactのコンポーネント、reactの特徴、reactアプリケーションの基本的な流れを書くことです.初期化プロジェクトから、reactプログラミング方式を学びました.