순서를 무얼 먼저 할까 잠깐 고민해보았는데 역시 화면에 무언가 보이지 않으면 답답하다.
그래서 이번엔 두 가지를 구현해보고자 한다.
별것 아니지만 순서를 잘못 이해하면 혼란스러울 수도 있다.
다행히 본인(^ㅡ^)이 잘 정리해드릴 것이므로 걱정하지 마시라.
이름은 HomeComponent라고 하자. XxxxComponent 형식으로 작성하면 이름으로 구분이 가서 알아보기 좋다. vulcan g component 라고 쳐서 component를 생성해보자.
그리고 yes yes (y 엔터)하면
패키지 경로 아래(packages/spectrum-simplebb)에서 ./lib/components를 보면
HomeComonent.jsx
index.js
이렇게 두개의 파일이 보일 것이다.
각각 내용을 보면
index.js는
이런 식으로 해도 되지만 우리는 항상 오타를 친다. package name정도는 화살표키로 고르도록 해보자.
첫번째 ? 에선 현재 package이름을 선택하였고
두번째 ? 에선 route의 이름으로 home을
세번째 ? 에선 route의 경로인 /을 입력.
네번째 ? 에선 Component 이름을 입력하자. 아까만든 HomeComponent
마지막 ? 에선 Layout name을 물어보는데 Layout? 그런거 몰라. 아무생각이 없다. 그냥 엔터치자.
Meteor 가 다시 재시작 되고 화면을 보자.
만세!
뭐 이렇다할 코드 없이 command-line 만으로 route도 만들고 component도 만들었다.
자신감을 가져도 된다.
HomeComponent.jsx 에서 export default HomeComponent; 를 할 필요가 없다던가. class HomeComponent extends Component 대신 class HomeComponent extends PureComponent 를 사용하는 것 등에 대한 이야기가 있지만 차차 구조를 알아가면서 알아보자.
다음엔 본격적으로 데이터를 다뤄보도록 하자.
그래서 이번엔 두 가지를 구현해보고자 한다.
- component 생성
- router 생성
별것 아니지만 순서를 잘못 이해하면 혼란스러울 수도 있다.
다행히 본인(^ㅡ^)이 잘 정리해드릴 것이므로 걱정하지 마시라.
1. Component 생성
최초의 화면 구성 요소인 component. 즉 Home을 만들자.이름은 HomeComponent라고 하자. XxxxComponent 형식으로 작성하면 이름으로 구분이 가서 알아보기 좋다. vulcan g component 라고 쳐서 component를 생성해보자.
$ vulcan g component인간은 오타의 동물이다. vulcan g component까지만 치고 화살표(라고 해봤자 지금은 하나밖에 없겠지만)로 선택하고 엔터 눌러주자.
? Package name (Use arrow keys)
❯ spectrum-simplebb
? Component name HomeComponentComponent name으로 HomeComponent를 입력하고 나면 Component type을 고르라고 하는데 어짜피 Meteor는 babel이 있으므로 Class Component를 사용하자. 아래 한번 누르고 Class Component를 선택. 엔터.
? Component type (Use arrow keys)
❯ Pure Function
Class Component
그리고 yes yes (y 엔터)하면
$ vulcan g component이런 식으로 component를 생성한다.
? Package name spectrum-simplebb
? Component name HomeComponent
? Component type Class Component
? Register component Yes
create packages/spectrum-simplebb/lib/components/HomeComponent.jsx
conflict packages/spectrum-simplebb/lib/components/index.js
? Overwrite packages/spectrum-simplebb/lib/components/index.js? overwrite
force packages/spectrum-simplebb/lib/components/index.js
패키지 경로 아래(packages/spectrum-simplebb)에서 ./lib/components를 보면
HomeComonent.jsx
index.js
이렇게 두개의 파일이 보일 것이다.
각각 내용을 보면
index.js는
import './HomeComponent.jsx';HomeComponent.jsx는
import React, { Component } from 'react';
import { registerComponent } from 'meteor/vulcan:core';
class HomeComponent extends Component {
render () {
return (
<div>
Find me at packages/spectrum-simplebb/lib/components/HomeComponent.jsx
</div>
);
}
}
registerComponent('HomeComponent', HomeComponent);
export default HomeComponent;
이와 같은 내용일 것이다.
물론 여전히 화면은 하얗고 아무것도 없은 상태일 것이고 이제 곧 이 component의 내용을 화면에 보이게 할 것이다.
2. Route 생성
vulcan g route 를 통해 route를 생성해보자.
vulcan g route spectrum-simplebb home /이런 식으로 해도 되지만 우리는 항상 오타를 친다. package name정도는 화살표키로 고르도록 해보자.
$ vulcan g routeconflict 라는 무서운 얘기가 나오긴 한데 긴장하지 말고 yes yes yes (y 엔터).
? Package name spectrum-simplebb
? Route name home
? Route path /
? Component name HomeComponent
? Layout name
conflict packages/spectrum-simplebb/lib/modules/routes.js
? Overwrite packages/spectrum-simplebb/lib/modules/routes.js? overwrite
force packages/spectrum-simplebb/lib/modules/routes.js
첫번째 ? 에선 현재 package이름을 선택하였고
두번째 ? 에선 route의 이름으로 home을
세번째 ? 에선 route의 경로인 /을 입력.
네번째 ? 에선 Component 이름을 입력하자. 아까만든 HomeComponent
마지막 ? 에선 Layout name을 물어보는데 Layout? 그런거 몰라. 아무생각이 없다. 그냥 엔터치자.
Meteor 가 다시 재시작 되고 화면을 보자.
만세!
뭐 이렇다할 코드 없이 command-line 만으로 route도 만들고 component도 만들었다.
자신감을 가져도 된다.
HomeComponent.jsx 에서 export default HomeComponent; 를 할 필요가 없다던가. class HomeComponent extends Component 대신 class HomeComponent extends PureComponent 를 사용하는 것 등에 대한 이야기가 있지만 차차 구조를 알아가면서 알아보자.
다음엔 본격적으로 데이터를 다뤄보도록 하자.
댓글
댓글 쓰기