生活コード改訂版2022改訂版1日目(2)
4.構成部品の作成
1.構成部品の作成
関数名(){
//※構成部品名は大文字で始まる必要があります.
//return必須
}
컴포넌트를 만드는 방법
function Header() {
return (
<header>
<h1>
<a href="/">WEB</a>
</h1>
</header>
);
}
function App() {
return (
// 컴포넌트를 사용하는 방법
<Header></Header>
);
}
結果!!5.道具を使う!
反応器ではpropが属性を表します!
たとえば、Headerコンポーネントでタイトル部分を変更したい場合は、どうすればいいですか?
Header構成部品にpropsを指定して変更します.
function Header(props//아무렇게 해도 상관없음)
{
return (
<header>
<h1>
<a href="/">{props.title}</a> // props 데이터를 사용할때는 {} 중괄호로 감싸줘야 합니다.
</h1>
</header>
);
}
function App() {
return <Header title="React"/>
}
結果繰り返し文でliを作成しましょう
const topics = const topics = [
{ id: 1, title: "html", body: "html is ..." },
{ id: 2, title: "css", body: "css is ..." },
{ id: 3, title: "javascript", body: "javascript is ..." },
];
function List(props)
{
const lis = [];
for(int i=0; i<props.topics.length; i++) // props로 받아온 topics의 크기만큼 반복
{
let t = props.topics[i]; // t에 값을 저장하고
lis.push( <li key={t.id}> <a href={"/read/" + t.id}>{t.title}</a></li>)
// lis에 값을 넣어준다.
}
return (
<ol>
{lis} // lis를 불러온다.
<ol>
)
}
function App() {
return (
<List topics={topics}/> // List 컴포넌트에서 topics를 불러올 수 있도록 topics={topics} 이렇게 설정
);
結果出力成功!
6.活動
ターゲット:HeaderコンポーネントでTitleをクリックすると、consoleが表示されます.ログに出力
まずはアプリjsでHeader Componentによってアクティビティが作成されます.
<Header title="React" onChangeMode={function() {console.log("DD");}} />
次にHeader構成部品に移動して設定します.function Header(props) {
return(
<header>
<h1>
<a href="/" onClick={props.onChangeMode}> // onclick이 아닌 대소문자 구분해서 작성해야 한다.
{props.title}
</a>
</h1>
</header>
)
}
このように書くとエラーは発生しませんが、console.ログにDDが出力されていないことを確認できます.これを防止するために、onChangeModeはfunction(e){e.preventDefault}を提供する必要があります.
e.preventDefaultは基本動作防止を示す.
結果
ターゲット:オブジェクトのIDを構成部品にインポートしようとします.
<List topics={topics} onChangeMode={(id) => {
console.log(id);
}}>
リストでonChangeModeを設定します. function List(props) {
let lis = [];
for (let i = 0; i < props.topics.length; i++) {
let t = props.topics[i];
lis.push(
<li key={t.id}>
<a
id={t.id}
href={"/read/" + t.id}
onClick={(e) => {
e.preventDefault();
props.onChangeMode(e.target.id); // id는 <a 바로 밑어 있는 id를 의미.
}}
>
{t.title}
</a>
</li>
);
}
return (
<nav>
<ol>{lis}</ol>
</nav>
);
}
結果明日.
Reference
この問題について(生活コード改訂版2022改訂版1日目(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@dltjdgns3z/생활코딩-React-2022-개정판-1일차2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol