a quick guide to learn React-js with projects examples
In React, you can pass props, or properties, to child components.
Say you have an App component which renders a child component called Welcome which is a stateless functional component.
You can pass Welcome a user property by writing:
<App>
<Welcome user='Mark' />
</App>
In this case, the created property user is passed to the component Welcome.
Since Welcome is a stateless functional component, it has access to this value like so:
const Welcome = (props) => <h1>Hello, {props.user}!</h1>
const List = (props) => {
return (<p>{props.tasks.join(", ")}</p>);
};
class ToDo extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<h1>To Do Lists</h1>
<h2>Today</h2>
<List tasks={["Walk", "Cook", "Bake"]} />
<h2>Tomorrow</h2>
<List tasks={["Study", "Code", "Eat"]} />
</div>
);
}
};
React also has an option to set default props.
You can assign default props to a component as a property on the component itself and React assigns the default prop if necessary.
This allows you to specify what a prop value should be if no value is explicitly provided.
to override the default props is to explicitly set the prop values for a component.
const Items = (props) => {
return <h1>Current Quantity of Items in Cart: {props.quantity}</h1>
}
Items.defaultProps = {
quantity: 0
}
class ShoppingCart extends React.Component {
constructor(props) {
super(props);
}
render() {
return <Items quantity={50}/>
}
};
React provides useful type-checking features to verify that components receive props of the correct type.
You can set propTypes on your component to require the data to be of type array. This will throw a useful warning when the data is of any other type.
const Items = (props) => {
return <h1>Current Quantity of Items in Cart: {props.quantity}</h1>
};
Items.propTypes = {
quantity: PropTypes.number.isRequired
};
Items.defaultProps = {
quantity: 0
};
class ShoppingCart extends React.Component {
constructor(props) {
super(props);
}
render() {
return <Items />
}
};
if the child component that you’re passing a prop to is an ES6 class component
you use the this keyword.
For example, if an ES6 class component has a prop called data, you write {this.props.data} in JSX.
class ReturnTempPassword extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<p>
Your temporary password is: <strong>{this.props.tempPassword}</strong>
</p>
</div>
);
}
};
class ResetPassword extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<h2>Reset Password</h2>
<h3>We've generated a new temporary password for you.</h3>
<h3>Please reset this password from your account settings ASAP.</h3>
<ReturnTempPassword tempPassword="xxxxxxxx"/>
</div>
);
}
};
previous: React Components
Next: Component with State