티스토리 뷰

FRONT-END/REACT

[REACT] IMPORT / EXPORT

진심스테이크 2019. 5. 2. 22:06

 

 

Component

Component 파일 안에서 선언한 다른 Component를 import / export

- class 앞에 export 키워드 작성

 

- Bpp.js 안에 Cpp.js, Dpp.js 선언

import React, { Component } from 'react';

class Bpp extends Component {
    render() {
        return (
            <div>
            <h1>Bpp</h1>  
            </div>
        );
    }
}

// 다른 파일에서 Bpp안에 있는 Cpp를 사용하고 싶을 때, 앞에 export 작성
// 아니면 'Cpp' is not exported from './components/bpp.js' 오류 뜸
export class Cpp extends Component {
    render() {
        return (
            <div>
            <h1>Cpp</h1>  
            </div>
        );
    }
}

export class Dpp extends Component {
    render() {
        return (
            <div>
            <h1>Dpp</h1>  
            </div>
        );
    }
}

export default Bpp;

 

- App.js

import React, { Component } from 'react';
import Bpp, { Cpp, Dpp } from './components/bpp.js';

class App extends Component {
  render() {
    return (
      <div>
        <Bpp></Bpp>
        <Cpp></Cpp> 
      </div>
    );
  }
}

export default App;

 

 

Function

함수를 다른 파일에 작성한 후 import / export

 

- fpp.js

// export : 끌여다 쓰기 위함

export function f2() {
    console.log("f2");
}

export function f3() {
    console.log("f3");
}

 

- App.js

import React, { Component } from 'react';
import * as Fpp from './components/fpp.js'; // 함수

class App extends Component {
  render() {
    Fpp.f2();
    Fpp.f3();
    return (
      <div>

      </div>
    );
  }
}

export default App;

 

 

Component + Function

Component 파일 안에서 선언한 다른 Component + Function import / export

 

- gpp.js

import React, { Component } from 'react';

class Gpp extends Component {
    render() {
        return (
            <div>
                <h1>Gpp</h1>
            </div>
        );
    }
}

export function f4() {
    console.log("f4");
}

export class Hpp extends Component {
    render() {
        return (
            <div>
                <h1>Hpp</h1>
            </div>
        );
    }
}

export default Gpp;

 

- App.js

import React, { Component } from 'react';
import Gpp, { Hpp } from './components/gpp.js';
import * as GppFunc from './components/gpp.js';

class App extends Component {
  render() {
    GppFunc.f4();
    return (
      <div>
        <Gpp></Gpp>
      </div>
    );
  }
}

export default App;

 

 

Component in Folder

각각 다른 폴더 안에 있는 Component 파일 import / export

 

- sub1/ipp.js

import React, { Component } from 'react';
import Jpp from '../sub2/jpp.js'

class Ipp extends Component {
    render() {
        return (
            <div>
                <h1>Ipp</h1>
                <Jpp></Jpp>
            </div>
        );
    }
}

export default Ipp;

 

- sub2/jpp.js

import React, { Component } from 'react';

class Jpp extends Component {
    render() {
        return (
            <div>
                <h1>Jpp</h1>
            </div>
        );
    }
}

export default Jpp;

 

- App.js : ipp.js를 jpp.js가 받고, App.js에서는 jpp.js만 import해도 두개 다 불러와짐

import React, { Component } from 'react';
import Ipp from './components/sub1/ipp.js';

class App extends Component {
  render() {
    return (
      <div>
        <Ipp></Ipp>
      </div>
    );
  }
}

export default App;

 

 

Folder

Folder 자체를 import / export

- folder안에 index.js 파일이 있어야 가능

 

- sub3/index.js

import React, { Component } from 'react';
import Spp from './spp.js';

class Apple extends Component {
    render() {
        return (
            <div>
                <h1>Sub3</h1>
                <Spp></Spp>
            </div>
        );
    }
}

export default Apple;

 

- spp.js : sub3안에 있는 파일들 중 하나

import React, { Component } from 'react';

class Spp extends Component {
    render() {
        return (
            <div>
                <h1>Spp</h1>
            </div>
        );
    }
}

export default Spp;

 

- App.js

import React, { Component } from 'react';
import Sub3 from './components/sub3';

class App extends Component {
  render() {
    return (
      <div>
        <Sub3></Sub3>
      </div>
    );
  }
}

export default App;

'FRONT-END > REACT' 카테고리의 다른 글

[REACT] SNAPSHOT TEST  (0) 2019.09.02
[REACT] ROUTER  (0) 2019.08.14
[REACT] COMPONENT STYLING  (2) 2019.04.29
[REACT] 함수형 컴포넌트  (0) 2019.04.29
[REACT] LIFE CYCLE - 수명주기  (0) 2019.04.27
댓글