:ES6でオブジェクトを簡単にインポートする方法は?私は、次のjavascriptいるES6で
import CommonModule from '../../common';
const { Link } = CommonModule.components;
は1-ライナーにこれを有効にする方法はありますか? '../../common'
リターンのラインに沿った構造を仮定し
:ES6でオブジェクトを簡単にインポートする方法は?私は、次のjavascriptいるES6で
import CommonModule from '../../common';
const { Link } = CommonModule.components;
は1-ライナーにこれを有効にする方法はありますか? '../../common'
リターンのラインに沿った構造を仮定し
私が知っているES6にはネストされた破壊がありません。私は、共通の正確リンクファイルの相対パスを知らない - :あなたは、共通のフォルダ内index.jsファイルを作成し、コードの下に
import Link from './Link';
module.exports = {
Link: Link
}
(注を追加することができます
import { components as C } from '../../common';
// then later
<C.Link>foobar</C.Link>
:
CommonModule = {
components: {
Link: {...}
...
}
...
}
そして、あなたはそれがその構文を使用してワンライナーでそうすることはできません直接、その後、逆参照CommonModule.components.Link
したいと思います。
現在、深いネストされたプロパティをimport
ステートメントを使用して1行に参照解除する方法はありません。the syntax only allows for direct children of the module to be dereferencedです。
あなたの代わりにrequire
を使用することができます場合は、使用することができます:
const Link = require('../../common').components.Link;
をあなたは、あなたが使用することができ、ワンライナー内にもCommonModule
への参照を保持したい場合:
const {components:{Link}} = CommonModule = require('../../common');
しかし、この時点で、簡潔さが混乱につながる場所に到達しています。あなたは2行で何を持っているかは完全に理解でき、簡単です。少ないコードで常に良いとは限りません。
:あなたのような何かができますフォルダ)
次にあなたが `インポート{}コンポーネントから、
import {Link} from '../../common';
それとも単にを使用してリンクをインポートすることができます...'。エイリアス 'C'は必須ではありません。 – Leo
このようなグローバルな 'Link'をOPのコードと同等にすることは可能ですか? – qxz
もちろん、エイリアスは必要ありませんが、大文字()は機能しません。だから、あなたは 'コンポーネント{コンポーネントをコンポーネント}としてインポートする必要があります... 'http://stackoverflow.com/questions/30373343/reactjs-component-names-must-begin-with-capital-letters –
Chris