国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

JavaScript - ES6 import {} from '..' サフィックス名の問題
阿神
阿神 2017-06-26 10:52:54
0
3
1364

最近、Ruan Yifeng の ES6 入門書を読みました。下の図の丸で囲ったところがよくわかりません。

この記事では、.js サフィックスは省略できないと述べられています。
しかし、次のような記述が以下に表示されます:

リーリー

Hereimport { counter, incCounter } from './lib';.js サフィックス名が省略されていませんか?
他の人が書いたいくつかの反応コードとの比較:

リーリー

import React from "react";.js サフィックスもここでは省略されていますが、import App from "./containers/App.jsx"; しかし、サフィックス名は完全に書き出されていました。

何人かの専門家に私の質(zhì)問に答えてもらいたいです: どのような狀況で import..from の後に .js のようなサフィックス名を記述すべきであり、どのような場合に記述すべきでないか書く ## #。それとも、誰かがツールを使ってサフィックス名を書く必要がないように設(shè)定したためでしょうか。 ###どうもありがとう! ! !

阿神
阿神

閉關(guān)修行中......

全員に返信(3)
迷茫

ブラウザのネイティブ解析とパッケージ化ツールの前処理を區(qū)別してください。

ブラウザネイティブ

ブラウザは import ステートメントを解析するときにサフィックスを必要とします。より正確には、ブラウザはインポート後の文字列を URL アドレスとして認(rèn)識します。これは、CSS ファイルに background-image: url(./path/to/a.jpg) を記述するのと同じです。ブラウザは、現(xiàn)在のファイルとページの BaseURL に基づいて依存リソースの URL アドレスを取得し、HTTP リクエストをサーバーに送信します。 JS またはイメージをホストするリソース サーバーがブラウザの HTTP リクエストに正しく応答できる限り、ブラウザは HTTP リクエストの URL アドレスではそれほど重要ではありません。サフィックスは自由に定義できます (もちろん、一般的なリソース サーバーには、ファイル拡張子から HTTP 応答ヘッダーの MIMEType へのマッピングがあります。サーバーが正しく応答できるように、他のカスタム サフィックスを追加することもできますが、それが最善です)。同意したとおりに設(shè)定する)、またはチートすることもできます。URL は http://a.com/b.jpg です。返されるコンテンツは、応答ヘッダー
application/javascript を持つテキスト文字です。

梱包ツール

パッケージ化ツールの場合、互換性のため、jsのインポート文は、webpackの__webpack_require__, 瀏覽器最后加載的是打包后的 bundle 文件,并沒有執(zhí)行 import 語句(大部分瀏覽器至今尚未實(shí)現(xiàn)import)。 這個時候,我們寫的 import 后面到底要不要后綴,全憑工具自己定義規(guī)則啊,只要工具在編譯打包時能找到被依賴模塊。比如webpack可以設(shè)定先找 .ts 如果沒有再找 .es 再找 .js, 如果是一個文件夾,就看文件夾里有沒有 index.js,甚至從node_modulesディレクトリ內(nèi)を検索するなど、ES5で実裝されたモジュール管理のインポート文に変換されます...

概要:

  1. 翻訳およびパッケージ化ツール: 書く必要はありません

  2. ES6 ノードをネイティブにサポート: 記述する必要はありません

  3. ES6 をネイティブにサポートするブラウザ: URL を通じてサーバー上で ES6 を見つける必要があるだけで、HTTP2 が実際に普及し、ES6 がブラウザに完全に実裝され、ファイルをパッケージ化する必要がなくなると、パッケージ化ツールは次のようになります。簡単に対処する方法。

まとめ: 書かないでください

ringa_lee

個人的な意見:

  1. 例: React、react-dom、vue などはすべてコントリビューター NPM package によってリリースされます (つまり、パッケージ化された modules )。これらはすべて、NPM を使用してインストールされた後、node_modules ディレクトリに保存されます。上記モジュール

  2. JS ファイルはモジュールではありません (ここで述べられていることは完全ではありません)

    • は ES6 で提供されます (インポートとエクスポートを使用してモジュールを定義します)模塊化

    • Node.js では、CommonJS 仕様を使用してモジュールを定義します

  3. 記事をおすすめします

過去多啦不再A夢
  1. .js不能省略,主要是為了可讀,以及區(qū)分。假設(shè)你目錄下有個自己寫的模塊test,還有一個自己寫的js文件test.js。模塊是以文件夾形式存在的,然后你用import './test',你無法確定你加載的是模塊還是test.js (ただし、ES6 では、JS ファイルもモジュールとみなされます)。

  2. このコードimport React from "react",并不是省略了.js,而是直接省略了/index.js。這是一個由npm安裝的包,在node_modules文件夾下面,其實(shí)它導(dǎo)入的是node_modulesreactindex.js,是整個包的入口文件,然后由index.js再去加載react需要用到的其他子jsあなたが見ているファイル

  3. node.js では、ES6 の公開パッケージの import語法,所以需要通過require()引入包,用module.exportsexportsインポート可能な部分はまだサポートされていないことに注意してください。

詳細(xì)については、MDN ドキュメントを參照してください

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート