非コア CSS_html/css_WEB-ITnose の非同期読み込み

WBOY
リリース: 2016-06-24 11:33:24
オリジナル
1127 人が閲覧しました

運用環境では、フロントエンドに依存して JSXTransformer.js ファイルを参照して JSX を JavaScript に変換するのはまったく信頼できません。したがって、Reactjs を使用する子供用の靴では、より洗練された方法を使用してこのタスクを完了する必要があります。現在最も一般的に使用されているフロントエンド構築ツールとして、この問題を解決するために Browserify と組み合わせた gulp は非常に優れています。お見逃しなく :)

早速、本題に入りましょう。

ソースコード

今回の私たちの使命は、この荒廃したソースコードをより最適化することです。これは千マイルの旅の始まりです。このコードが魔法の馬を作るために使用されていることが理解できない子供がいる場合は、「ママは家に帰って基本を学ぶように頼んだ」としか言えません。コード、刺してください)。

<div id="app"></div><script type="text/jsx">	var HelloWorld = React.createClass({ 		render: function() { 			return (				<div> Hello World </div> 			);		}	}); 	React.render(<HelloWorld />, document.getElementById('app'));</script><script type="text/jsx">	var Child = React.createClass({ 		render: function() { 			return (				<div> The Child </div> 			);		}	}); 	var Parent = React.createClass({ 		render: function() { 			return (				<div> Hello World </div>				<Child/> 			); 		} 	}); 	React.render(<Parent />, document.getElementById('app'));</script>
ログイン後にコピー

最適化

前に両方のコンポーネントを一緒に書きましたが、今度はそれらを独立したファイルに分割しましょう。そのうちの 1 つは js/components/Parent.jsx という名前で、内容は次のとおりです:

var Child = require('./Child.jsx');var Parent = React.createClass({  render: function(){    return (      <div>        <div> Hello World </div>        <Child/>      </div>    )  }});module.exports = Parent;
ログイン後にコピー

親の子コンポーネント Child は js/components/Child.jsx に書き込まれ、内容は次のとおりです:

var Child = React.createClass({  render: function(){    return (      <div> The Child </div>    )  }});module.exports = Child;
ログイン後にコピー

Up toこの点では、コンポーネントは事前に分割されています。module.exports についてほとんど知らない、またはこれがどのような種類の航空機であるかを理解していない子供がいる場合は、Baidu と Google CMD の仕様を参照してください。ニアンはとても魅力的で、混乱しているあなたを助けてくれます。

実際にページ上にコンポーネントを表示したい場合は、React.render 関数を実行する必要があります。これは js/app.js で記述されており、内容は次のとおりです:

var Parent = require('./components/Parent.jsx');React.render(<Parent />, document.getElementById('app'));
ログイン後にコピー

これを実現するために、次のことも行いました。非常に重要なこと 重要なことは、ファイル ディレクトリが最適化されていることです。コンポーネントは /components フォルダーに配置され、スタートアップはルート ディレクトリ /js に配置されます。これは明確です。

Browerify を使用した後は、次のようにカスタム スクリプト ファイルを HTML ファイルに導入するだけです:

<script src='js/bundle.js'></script>
ログイン後にコピー

すべての依存する js コンテンツは、将来、bundle.js ファイルにコンパイルされます。

Browserify をインストールします

まず、Gulp をインストールする必要があります。ここでは、nodejs が全員のシステムにインストールされ、gulp もグローバルにインストールされていると仮定します。つまり、gulp -v
と入力すると出力が表示されます。

まず、コンピューターに gulp が正常にインストールされていることを確認してください。インストール方法については詳しく説明しません。 GoogleやBaiduにアクセスしてみると良いでしょう。

コマンドラインで次のコマンドを入力すると

gulp -v
ログイン後にコピー

出力結果がこのようになれば、gulp が正常にインストールされたことを意味します。

CLI version 3.9.0Local version 3.9.0
ログイン後にコピー

これに基づいて、プロジェクト ディレクトリに入るときに、gulp、browserify、および関連する補助ツールをローカルにインストールする必要があります:

npm install --save-dev gulp browserify vinyl-source-stream babelify
ログイン後にコピー

Mac を使用している場合は、sudo を追加することを忘れないでください。

上記の 4 つのパッケージのそれぞれの機能について説明しましょう:

  • gulp はタスク実行環境であり、タスクのスケジューリングに使用されます

  • browserify モジュールは出力に js

  • vinyl-source-stream を必要とするために使用されますbrowserify データを正確に変換してフローを gulp 標準に準拠させます

  • reactify JSX のコンパイル機能を実装するために使用します

その後、gulpfile.js に移動して次の内容を入力します:

var gulp = require("gulp"),	browserify = require('browserify'),	reactify = require('reactify'),	source = require('vinyl-source-stream');gulp.task('jsx', function() {	browserify('./js/app.js')		.transform(reactify)		.bundle()		.pipe(source('bundle.js'))		.pipe(gulp.dest('js'));});
ログイン後にコピー

上記のスクリプトを説明しましょうプロセス 。最初のステップは、処理のためにエントリ ファイル app.js をbrowserify に渡すことです。jsx コンパイルの場合、公式の推奨事項は Reactify です。次に、bundle() を実行して、すべての依存関係を Bundle.js にパッケージ化します。ただし、browserify は gulp 用に特別に作成されたパッケージではないため、出力されるすべてのデータ ストリームを gulp に直接パイプすることはできません。そのため、source() を使用する必要があります。 ) インターフェイス、つまり、vinyl-source-stream ツールがそれを処理し、それを gulp にパイプして、出力 Bundle.js ファイルを js フォルダーに保存します。

タスクを作成したら、コマンドラインで実行します。

gulp jsx
ログイン後にコピー

js/bundle.js ファイルが生成されます。このファイルのタグはindex.htmlに追加されているので、chromeで直接開くとランニング効果が確認できます。

この記事は「When React Meets Gulp and Browserify」から転載しています

原文 http://segmentfault.com/a/1190000004002631
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!