Prop
9897 ワード
prop
反応器では、属性を
prop
と呼ぶ.function Aaa(props) {
console.log('props', props, props.title);
return <header>
<h1><a href='/'>React</a></h1>
</header>
}
function Nav(props) {
const lis = []
for(let i=0; i<props.topics.length; i++){
let t =props.topics[i]
lis.push(<li key={t.id}><a href={'/'+t.id}>{t.title}</a></li>)
}
return <nav>
<ol>
{lis}
</ol>
</nav>
}
function App() {
return (
<div>
<Aaa title="React"></Aaa>
<Nav topics={topics}> </Nav>
</div>
);
}
export default App;
ここから出力props
からconsole.log('props', props);
props 는 Object
はオブジェクトであり、titleは「react」値を出力する.このときreactという単語だけを出力したい場合は、
console.log(props.title);
と入力するだけです. return <header>
<h1><a href='/'>{props.title}</a></h1>
</header>
reactという言葉を直接使いたくない場合は、return値に入れたい場合は、上のコードのように{props.title}
と入力します.App.js - Nav 부분
function Nav(props) {
const lis = []
for(let i=0; i<props.topics.length; i++){
let t =props.topics[i]
lis.push(<li key={t.id}><a href={'/'+t.id}>{t.title}</a></li>)
}
return <nav>
<ol>
{lis}
</ol>
</nav>
}
function App() {
const topics =[
{ id:1, title:'html', body:'html is ...' },
{ id:2, title:'css', body:'css is ...' },
{ id:3, title:'React', body:'React is ...' },
]
return (
<div>
<Nav topics={topics}> </Nav>
</div>
);
}
export default App;
Navがリンクを追加したい場合は、function App()
変わらない価格でtopics
に渡しました.前述したように、
Nav
属性が付与され、lis
変数に配列が追加される.(이유는 return 값에 넣기 위함이다. 리액트에 의해서 배열의 값을 하나씩 꺼내서 배치시켜주기 때문에!)
for(let i=0; i<props.topics.length; i++)
이 부분은 Map 함수를 사용해서 쓸 수도 있다 !
動的に作成されたタグにはkeyが必要であり、重複文で一意である必要があります.そのため、lis.push(<li key={t.id}><a href={'/'+t.id}>{t.title}</a></li>)
これのように、キー値を入れました.なぜkeyを追加するのですか?
簡単に説明すると、自動的に生成されたラベルに対して、反応器はこれらのラベルを追跡すべきであるが、追跡の根拠が必要である.
対応する根拠として、keyという約束の支柱を反応器に与え、反応器の性能を高め、正しい動作をするのを助ける.
Reference
この問題について(Prop), 我々は、より多くの情報をここで見つけました https://velog.io/@hyuri/Propテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol