この行の内容:
import React, { Component } from "react";
中括弧がコンポーネントの周りにのみあり、「React」にもないのはなぜですか?
これは素晴らしい答えです ES6のデフォルトおよび名前付きインポートについて説明しています
インポートしたいFooという名前のクラスがあるとしましょう。デフォルトのエクスポートを取得したい場合は、次のようにします。
import Foo from './foo.js';
Fooファイル内に特定の関数が必要な場合は、中括弧を使用します。
import { fooFunction } from './foo.js';
これはReact機能ではなく、ES6であることに注意してください。おそらく、babelを使用してコードをES6からES5にトランスパイルしています。
反応で似たようなものを作成します。次の例を見てみましょう。
someobject.js
const someobject = {
somefunc1: ()=>console.log("hello 1"),
somefunc2: ()=>console.log("hello 2")
}
export default someobject;
app.js
import someobject, { somefunc1, somefunc2 } from "./someobject";
someobject.somefunc1(); //hello 1
someobject.somefunc2(); //hello 2
somefunc1(); //hello 1
somefunc2(); //hello 2
輸出のデフォルト
Import reactはデフォルトのreactパッケージをインポートし、中括弧付きのコンポーネントはReactパッケージの特定の要素を指定します。Reactは、デフォルトでは中括弧は必要ありません。デフォルトのインポートパッケージ。
import React, { Component } from "react";
お役に立てれば
Reactモジュールデフォルトのエクスポート はReact
オブジェクトであり、 名前付きエクスポート)もありますComponent
1、 このようなもの:
// assuming React and Component are predefined
export default React
export Component
偶然にもComponent
はReactオブジェクトでも利用できるので、個別にインポートする必要はありませんが、あなたのアプローチを好む人もいます。たとえば、これは可能です。
// MyComponent.js
import React from 'react'
class MyComponent extends React.Component {}
ES6モジュール構文の詳細については、 ここ を参照してください。
1 実際には、Reactライブラリには、上記の例のように名前付きエクスポートComponent
がありませんが、Component
は デフォルトのプロパティ)であることに注意してください。 export したがって、ES6パッケージがBabelによってトランスパイルされる方法により、これは名前付きエクスポートになり、動作は上記の例のようになります。
これは、reactライブラリのデフォルトのエクスポートモジュールがReactであり、他の多くのコンポーネントをエクスポートできる場合でも、デフォルトのエクスポートは1つしか存在できないためですが、デフォルトにできるのは1つだけです。その後、Reactライブラリの他のコンポーネントを分解できます。
Reactはさまざまなメソッドを含むモジュールです。React Wordを使用する場合は、モジュール全体をインポートするため、React.Component
(この場合はドット表記でメソッド内のメソッドを参照)を使用できます。モジュール)。
では、メソッドをインポートする必要がある場合はどうでしょうか。中かっこを使用します、なぜですか? 1つのモジュール内の多くのメソッド間でメソッドをインポートするため、増減できるため、1つのクラスまたは1つのモジュール内のメソッドである{a、b、c、r、w、q}をインポートできます。使用している場合
import {Component} from 'react';
これで、react.componentのようにドット参照なしでComponentWordを直接使用できます。
したがって、Reactモジュールはデフォルトでエクスポートされます。ここでは、すべてのReactモジュールが必要です。これをすべてのメソッドで使用します。ここでは、{Component}を名前でエクスポートします。 Reactライブラリから特定のメソッドが必要ですすべてがreactライブラリではありません
そしてそれもチェックしてください ES6インポートに中括弧を使用する必要があるのはいつですか?