먼저.. App.js를 쳐다봤다.
function App() 안에 return이 있고 그 안에 HTML 이 있다 (????!?!?!)
기본 문법을 익히며 사용해보는 중.
*Javascript 생성
//Hi.js
import React, { Component } from "react";
.
.
.
export default Hi;
만약 새로운 javascript 파일을 만들 경우, 이렇게 import 와 동시에 export를 꼭 써주어야 한단다.
(아직 뭘 import 해야할 지 잘 몰라서 컴포넌트 공부하기 위해 컴포넌트 임포트 해놓았음.)
*Props 사용
//App.js
import logo from "./logo.svg";
import "./App.css";
function App() {
return (
<div className="App">
<Namep name="Jihun"/>
<Namep name="Dana"/>
</div>
);
}
//사용자 정의 Element : 첫글자를 대문자로.
// 맨 위의 App()에서, <Name name="jihun"/> 이런식으로 사용 가능!
function Namep(props) {
//props : 부모에게 넘겨받은 값. 해당 값을 수정해서는 안됨.
return <h1>Hi {props.name} !</h1>;
}
export default App;
사용자 정의 Element를 설정할 수 있는데, 첫글자는 대문자로 설정하고, 리턴 안에 HTML 문법 사용해서 넣어준다.
props의 경우는 넘겨받는 값을 뜻하는데, 수정이 이루어져서는 안된다.
위에 보면 props는 넘겨받는 값을 여러개로 해서 여러번 사용 가능하다. Polymorphism...?^^ㅎ....
아래와 같은 방법으로도 사용 가능하다.
//Hi.js
import React, { Component } from "react";
class Hi extends React.Component {
//default props: 값을 입력하지 않는 경우 또는 값이 없는 경우 기본으로 나오는 props를 설정 가능.
static defaultProps = {
name: "Default name",
};
render() {
return (
<div>
<h1>Hi {this.props.name} !</h1>
</div>
);
}
}
export default Hi;
//App.js
import React, {Component} from 'react';
import Hi from './Hi'
class App extends React.Component {
render() {
return (
<Hi name="Jihun"/>
);
}
}
export default App;
*State 활용
//Hi.js
import React, { Component } from "react";
class Hi extends React.Component {
// construnctor 사용해서 초기 state를 지정해줄 수도 있다.
constructor(props) {
super(props);
this.state = {
name: "Default name",
};
}
componentDidMount() {
// 컴포넌트가 마운트 된 직후 호출. 비동기적으로 호출되는 것을 방지!
this.setState({
name: this.state.name + " !!! ",
});
}
render() {
return (
<div>
<h1>Hi {this.props.name} !</h1>
</div>
);
}
}
//결과는 Hi Default name !!! 가 되는 것이다.
export default Hi;
constructor를 사용하는 경우, state를 사용하게 되는데 이 경우 state를 통해 값의 변경이 가능하다.
setState 를 활용하여, props의 값이 아닌 state의 값을 변경해주는 것...!
'Study IT > Web-App' 카테고리의 다른 글
[React] 간단한 날씨 웹앱 만들어보기 - Loading.js 와 Location (0) | 2021.04.12 |
---|---|
[React] 간단한 날씨 웹앱 만들어보기 - React Native, Expo (0) | 2021.04.04 |
[Node.js, React] 간단한 웹-앱 만들기 - Node.js 설치와 react (0) | 2021.02.14 |
[+] 연구실 홈페이지 개편 (0) | 2021.02.13 |
[+] 프로젝트가 필요하다. (0) | 2021.02.12 |
댓글