Openlayers 6.2.1浅く味わう心得(二)
5313 ワード
シーケンス
問題のまとめ
一、キーワード
二、具体的なコード及び関連問題
まず、同じディレクトリの下に次の3つのファイルを作成します.
A.js
B.js
index.html
(ここでブロガー の
プロジェクトの 、プロジェクトポートが されていない は、
インタフェースに されている の が されている は、プロジェクト
1.ファイル に づいて、まず
2.
3.
4. 、
5. に、
A.js:
index.html:
コードを したら、
このような が するのは,オブジェクト けのモジュール モデルでは,ある
どうする?方法は、
ブラウザでは、最上位レベルのグローバル変数は
A.js
さあ、
三、まとめ:
Openlayers 6.2.1
開発環境の構築について述べ,各プラグインの機能を簡単に述べた.今日、Node
環境におけるOpenLayers
開発に関する小さな心得を引き続き記録する.問題のまとめ
Openlayers
の環境構築を完了し、次のタスクは機能開発です.次に、全文は、ブロガーが開発中に遭遇したNode
に関連するすべての問題の総括を記録する.一、キーワード
import,export
の理解import
およびexport
は、ES6
に追加された2つのキーワードとして、主に役割ドメインの問題を解決するために使用される.通常、import
とexport
はペアで使用される.すなわち、B.js
にstr
という変数を定義し、他のjs
ファイルでも使用できるようにするには、B.js
ファイルにexport
キーワードを使用してstr
をエクスポートする必要があります.同時にA.js
ファイルもimport
キーワードを使用してstr
をインポートして使用する必要があります.二、具体的なコード及び関連問題
まず、同じディレクトリの下に次の3つのファイルを作成します.
A.js
import str from "./B";
import {bbb} from "./B";
// str = null;
document.write(str+bbb);
B.js
let str = "blablabla~";
let bbb = "NB";
export default str;
export {bbb}
index.html
Title
(ここでブロガー の
IDE
ツールは、インタフェースの Terminal
パネル でコマンドを くことができます)npm start
プロジェクトの 、プロジェクトポートが されていない は、
http://localhost:1234
に アクセスすると、ページの が されます.blablabla~NB
インタフェースに されている の が されている は、プロジェクト
parcel
プラグインに がないことを します.では、コードを してみましょう.1.ファイル に づいて、まず
B.js
のファイルを てみましょう.このファイルでは、let
のキーワードによって str
とbbb
が され、export default
とexport {}
の2つの によって が われています.ここで すべきは、export default
で を う 、1つのjs
ファイルに1 しか れなくても れなくてもよいことである. 、export {}
の では、 すべき の を に れ、カンマで ることができる.2.
A.js
ファイルにおいて、 の2 はB.js
から された のインポートである.1 はexport default
に して を する であり、2 はexport {}
に して を する であり、 する がある は に の する がある を し、カンマで るだけでよい.このセクションでは、export default
およびexport {}
から された をimport {} from
に して にインポートすることはできないことに してください.3.
index.html
では、ここではA.js
のみが され、B.js
は されていないが、コードは に していることがわかる.これは、 たちが したプロジェクト が、 で にインポートすることなく、エントリファイル(index.html
)と のファイルとの を に インポートできるためです.4. 、
A.js
のファイルを り ってみましょう.3 に が したコードがあります.コメントを して させます. は のとおりです.A.f5b0a0fa.js:116 Uncaught Error: "str" is read-only.
at A.js:3
at Object.parcelRequire.A.js../B (A.js:3)
at newRequire (A.f5b0a0fa.js:47)
at A.f5b0a0fa.js:81
at A.f5b0a0fa.js:120
A.js
ファイルでB.js
ファイルの str
を したため、 のエラーが したことがわかります.エラーの は、A.js
ファイルのうちB.js
ファイルが み り であり、 い えれば、A.js
では str
が すメモリアドレスを する がありません.5. に、
A.js
とindex.html
のファイルについて の を います. のコードは の りです.A.js:
function onLoadTest() {
document.write(" , ~!");
}
index.html:
Title
コードを したら、
Terminal
パネルでnpm start
コマンドを して、プロジェクトを しますが、 は「ほほほ」です. たちはページの , ~!
の を ていないだけでなく、ブラウザは いを しました.Uncaught ReferenceError: onLoadTest is not defined
at onload ((index):8)
onLoadTest
?どうして?A.js
ファイルで されているのに?しかもhtml
には があるファイルも されていますね~!(export
で をエクスポートしていないという もいるかもしれませんが、ここではその もそう ってエクスポート をしていたので、 は できますが、エラーが されています) き を えてみて、index.html
ファイルを いているブラウザに ドラッグしてみて、 を ましたか? には , ~!
と かれています.ここを てもっと かになったのではないでしょうか.なぜそうなったのか し、この をどう するかを します.このような が するのは,オブジェクト けのモジュール モデルでは,ある
js
ファイルで した や の ドメインが のファイルのみであり, らが するファイルを すと び すことができないため,エラーを するためである.ここを て、もしあなたがまた えたら、 はA.js
ファイルの で をエクスポートして、index.html
の で import {XXX} from "XXX";
で関数をインポートすればいいのではないでしょうか.もう一度一緒に考えてよかったのですが、残念ながらこのインポート方式はブラウザで禁止されているので、通用しません.どうすればいいの?js
関数をhtml
に書きますか?本当にそうすれば、本当にいいですね.しかし、html
に他のjs
ファイルの関数をネストすると、ブラウザはこのような方法を許可しないため、このようなプロジェクトは現実的ではありません.死のサイクルだ~!どうする?方法は、
html
ノードに動的または静的に書かれた呼び出された関数をグローバル変数に設定すればよい.つまり、呼び出す必要がある関数をグローバル役割ドメインに配置し、プロジェクト内の任意のファイルで自由に呼び出すことができます.ここでは、ブラウザおよびNode
のグローバル変数の問題も提起される.ブラウザでは、最上位レベルのグローバル変数は
windows
で、すべてのjs
ファイルに定義されたすべての変数が含まれています.Node
では、最高レベルのグローバル変数はgloba
であり、彼らの間には違いがありますが、これは私たちの使用に影響を与えないので、私たちが注目しているポイントではありません.△どんな違いがあるか聞かないで、聞かないでください.グローバル変数がある以上、私たちがしなければならないのは、この変数に属性を追加することです.修正されたコードは以下の通りです.A.js
global.onLoadTest = function () {
document.write(" , ~!");
};
さあ、
npm start
をもう一度運転してみましょう.楽しいですか: , ~!
.三、まとめ:
Node
環境下のフロントエンドプロジェクトの開発は、これまでhtml
ファイルにjs
ファイルを導入してきた方法とは多くの違いがあり、慣れない点がありますが、これは重要ではありません.新しい技術を抱擁することが私たちのプログラム猿の成長、楽しみの根本ではないでしょうか.