ES6のデストラクチャリングとモジュールインポート
2023-11-19 14:27:27
質問
この構文の印象が強かったのですが。
import Router from 'react-router';
var {Link} = Router;
は最終的にこれと同じ結果になります。
import {Link} from 'react-router';
何が違うのか、誰か説明してください。
(私はもともと React Routerのバグ .)
どのように解決するのですか?
import {Link} from 'react-router';
をインポートします。
という名前のエクスポート
から
react-router
のようなものです。
export const Link = 42;
import Router from 'react-router';
const {Link} = Router;
はプロパティを引き出します。
Link
から
デフォルトのエクスポート
で、それがオブジェクトであると仮定して、例えば
export default {
Link: 42
};
(デフォルトのエクスポートは、実際には "default"という名前の標準化された名前のエクスポートに過ぎません)。
参照
export
MDN 上
.
完全な例です。
// react-router.js
export const Link = 42;
export default {
Link: 21,
};
// something.js
import {Link} from './react-router';
import Router from './react-router';
const {Link: Link2} = Router;
console.log(Link); // 42
console.log(Link2); // 21
Babel 5以下では、ES6モジュールがCommonJSにトランスパイルされたため、これらは交換可能であると思います。しかし、言語に関しては、これらは2つの異なる構造です。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] JavaScriptで日付の書式設定に関するドキュメントはどこにありますか?
-
[解決済み] セレクトボックスのオプションをすべて削除してから、オプションを1つ追加して、jQueryで選択するにはどうすればよいですか?
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] Javascript 空の配列の削減
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] コンポーネントを正しく登録しましたか?再帰的なコンポーネントの場合は、必ず "name "オプションを指定してください。