react 事始め 4
◾️Component
1) Class Component:AppというクラスがComponentを継承して存在
import React, { Component } from 'react'; class App extends Component { render() { return ( <React.Fragment> <label htmlFor="bar">bar</label> <input type="text" onChange={() => {console.log("I am clicked!")}}></input> </React.Fragment> ) } }
2) Functional Component:関数で定義しているので、Componentは不要
import React from 'react'; const App = () => { return ( <div> <Input /> </div> ) } const Input = () => { return <div> <label htmlFor="bar">bar</label> <input type="text" onChange={() => {console.log("I am clicked!")}}></input> </div> } export default App;
◾️Props
propsとは、componentの属性をいい、あるデータの属性に対して参照できるもののことをいう。propsには数値、文字列、配列、オブジェクト、関数など何でも使用することができる。{ }で囲ってpropsを渡す。
import React from 'react'; const App = () => { const profiles = [ { name: "TKB_48", age: 15,}, { name: "HKT_48", age: 12,}, { name: "NMB_48" } ] return ( <div> { profiles.map((profile, index) => { return <User name={profile.name} age={profile.age} key={index} /> }) } </div> ) } const User = (props) => { return <div>Hi, I am {props.name}, and {props.age} years old! </div> } User.defaultProps = { age: 10 } export default App;
◾️そのほかに使用例
./src/App.js import React, { Component } from 'react'; import './App.css'; import Person from './Person/Person.js' class App extends Component { render() { return ( <div className="App"> <h1>Hi, I'm a React App</h1> <p>This is really working!</p> <Person /> </div> ); } } export default App; ======================== ./Person/Person.js import React from 'react' const person = () => { return <p>I'm a Person!</p> } export default person
./src/App.js import React, { Component } from 'react'; import './App.css'; import Person from './Person/Person.js' class App extends Component { render() { return ( <div className="App"> <h1>Hi, I'm a React App</h1> <p>This is really working!</p> <Person name="Max" age="28" /> <Person name="Manu" age="29" /> <Person name="Stephanie" age="26" /> </div> ); } } export default App; ======================= .src/Person/Person.js import React from 'react' const person = (props) => { return <p>I'm {props.name} and I am {props.age} years old!</p> } export default person