# Airbnb
# Alipay
# Wordpress.com source code and
# and many other big bosses using React
1. HTML
2. JavaScript
3. CSS sounds familier
But the most important thing is: More you learn to React, more deep dive into JavaScript. Because always React try to use update JavaScript features.
1. Create-React-App and File Structure
2. Hello World with React
3. Introducing JSX
4. Rendering Element
5. Component, State, Props
6. Event Handling
7. React DevTools
8. List, Form and
9. React Hooks
With JSX:
Without JSX:
import React, { Component } from 'react';
class App extends Component {
render() {
return (
<div style={{ text-align: center }}>
<h1>Hello Developers</h1>
<p>Thank you for being with us!</p>
</div>
);
}
}
import React, { Component } from 'react';
import ReactDOM from 'react-dom'
class App extends Component {
render() {
return (
<div style={{ text-align: center }}>
<h1>Hello Developers</h1>
<p>Thank you for being with us!</p>
</div>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root');
);
Thank you for being with us!
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
ReactDOM.render(
<Welcome name="Sara" />
document.getElementById('root')
);
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
ReactDOM.render(
<Welcome name="Sara" />,
document.getElementById('root')
);
Source: WebJustify
import React from 'react';
class Form extends React.Component {
state = {
userName: ''
};
render() {
return (
<form>
<input
type="text"
value={this.state.userName}
placeholder="GitHub Username"
required
/>
<button type="submit">Add card</button>
</form>
);
}
}
export default Form;
import React from 'react';
export class Form extends React.Component {
state = {
userName: ''
};
handleInput = (e) => {
this.setState({ userName: e.target.value });
}
render() {
return (
<form>
<input
type="text"
value={this.state.userName}
onChange={this.handleInput}
placeholder="GitHub Username"
required
/>
<button type="submit">Add card</button>
</form>
);
}
}
export default Form;
import React from 'react';
import axios from 'axios';
export class Form extends React.Component {
state = {
userName: ''
};
handleInput = (e) => {
this.setState({ userName: e.target.value });
}
handleSubmit = event => {
event.preventDefault();
axios
.get(`https://api.github.com/users/${this.state.userName}`)
.then(resp => {
this.props.onSubmit(resp.data)
this.setState({ userName: '' })
});
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<input
type="text"
value={this.state.userName}
onChange={this.handleInput}
placeholder="GitHub Username"
required
/>
<button type="submit">Add card</button>
</form>
);
}
}
export default Form;
import React from 'react';
export const Card = props => {
return (
<div>
<img alt="avatar" src={props.avatar_url} />
<div>
<h2>{props.name}</h2>
<p>{props.bio}</p>
<p>{props.blog}</p>
</div>
</div>
);
};
export default Card;
import React from 'react';
import Card from './Card';
export const CardList = props => {
return <div>{props.cards.map(card => <Card {...card} />)}</div>;
};
export default CardList;
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import './styles.css';
class ClassyCounter extends Component {
state = {
count: 0
};
setCount = () => {
this.setState({ count: this.state.count + 1 });
};
render() {
return (
<div className="counter">
<h1>{this.state.count}</h1>
<button onClick={this.setCount}>Count Up To The Moon</button>
</div>
);
}
}
const rootElement = document.getElementById('root');
ReactDOM.render(<ClassyCounter />, rootElement);
import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import './styles.css';
function HooksCounter() {
const [count, setCount] = useState(0);
return (
<div className="App">
<h1>{count}</h1>
<button onClick={() => setCount(count + 1)}>Count Up To The Moon</button>
</div>
);
}
const rootElement = document.getElementById('root');
ReactDOM.render(<HooksCounter />, rootElement);
github.com/jamal-pb95
twitter.com/jamal_uddin95
medium.com/@jamal.pb95
facebook.com/jamal.pb95
dev.to/jamal_uddin95
linkedin.com/in/jamal-pb95
http://jaamaal.xyz
codepen.io/jamal-pb95