<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Lifecycle Methods</title>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<style>
#container {
padding: 50px;
background-color: #FFF;
}
.colorSquare {
box-shadow: 0px 0px 25px 0px #333;
width: 242px;
height: 242px;
margin-bottom: 15px;
}
.colorArea input {
padding: 10px;
font-size: 16px;
border: 2px solid #CCC;
}
.colorArea button {
padding: 10px;
font-size: 16px;
margin: 10px;
background-color: #666;
color: #FFF;
border: 2px solid #666;
}
.colorArea button:hover {
background-color: #111;
border-color: #111;
cursor: pointer;
}
</style>
</head>
<body>
<div id="container"></div>
<script type="text/babel">
class Colorizer extends React.Component {
constructor(props) {
super(props);
this.state = {
color : "",
bgColor : "white"
}
this.colorValue = this.colorValue.bind(this);
this.setNewColor = this.setNewColor.bind(this);
}
colorValue(e) {
this.setState({
color : e.target.value
});
}
setNewColor(e) {
this.setState({
bgColor : this.state.color
});
e.preventDefault();
}
render() {
let squareStyle = {
backgroundColor : this.state.bgColor
};
return(
<div className = "colorArea">
<div style={squareStyle} className="colorSquare"></div>
<form onSubmit={this.setNewColor}>
<input onChange={this.colorValue} placeholder="Enter a color value"/>
<button type="submit">go</button>
</form>
</div>
)
}
}
ReactDOM.render(
<div>
<Colorizer />
</div>,
document.querySelector("#container")
);
</script>
</body>
</html>
function(el) {
self._input = el;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Lifecycle Methods</title>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<style>
#container {
padding: 50px;
background-color: #FFF;
}
.colorSquare {
box-shadow: 0px 0px 25px 0px #333;
width: 242px;
height: 242px;
margin-bottom: 15px;
}
.colorArea input {
padding: 10px;
font-size: 16px;
border: 2px solid #CCC;
}
.colorArea button {
padding: 10px;
font-size: 16px;
margin: 10px;
background-color: #666;
color: #FFF;
border: 2px solid #666;
}
.colorArea button:hover {
background-color: #111;
border-color: #111;
cursor: pointer;
}
</style>
</head>
<body>
<div id="container"></div>
<script type="text/babel">
class Colorizer extends React.Component {
constructor(props) {
super(props);
this.state = {
color : "",
bgColor : "white"
}
this.colorValue = this.colorValue.bind(this);
this.setNewColor = this.setNewColor.bind(this);
}
colorValue(e) {
this.setState({
color : e.target.value
});
}
setNewColor(e) {
this.setState({
bgColor : this.state.color
});
this._input.focus();
this._input.value = "";
e.preventDefault();
}
render() {
let squareStyle = {
backgroundColor : this.state.bgColor
};
var self = this;
return(
<div className = "colorArea">
<div style={squareStyle} className="colorSquare"></div>
<form onSubmit={this.setNewColor}>
<input
onChange={this.colorValue}
ref={
(el)=>self._input = el
}
placeholder="Enter a color value"
/>
<button type="submit">go</button>
</form>
</div>
)
}
}
ReactDOM.render(
<div>
<Colorizer />
</div>,
document.querySelector("#container")
);
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Lifecycle Methods</title>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<style>
#container {
padding: 50px;
background-color: #FFF;
}
.colorSquare {
box-shadow: 0px 0px 25px 0px #333;
width: 242px;
height: 242px;
margin-bottom: 15px;
}
.colorArea input {
padding: 10px;
font-size: 16px;
border: 2px solid #CCC;
}
.colorArea button {
padding: 10px;
font-size: 16px;
margin: 10px;
background-color: #666;
color: #FFF;
border: 2px solid #666;
}
.colorArea button:hover {
background-color: #111;
border-color: #111;
cursor: pointer;
}
#colorHeading {
padding: 0;
margin: 50px;
margin-bottom: -20px;
font-family: sans-serif;
}
</style>
</head>
<body>
<h1 id="colorHeading">Colorizer</h1>
<div id="container"></div>
<script type="text/babel">
class Colorizer extends React.Component {
constructor(props) {
super(props);
this.state = {
color : "",
bgColor : "white"
}
this.colorValue = this.colorValue.bind(this);
this.setNewColor = this.setNewColor.bind(this);
}
colorValue(e) {
this.setState({
color : e.target.value
});
}
setNewColor(e) {
this.setState({
bgColor : this.state.color
});
this._input.focus();
this._input.value = "";
e.preventDefault();
}
render() {
let squareStyle = {
backgroundColor : this.state.bgColor
};
var self = this;
return(
<div className = "colorArea">
<div style={squareStyle} className="colorSquare"></div>
<form onSubmit={this.setNewColor}>
<input
onChange={this.colorValue}
ref={
(el)=>self._input = el
}
placeholder="Enter a color value"
/>
<button type="submit">go</button>
</form>
<ColorLabel color={this.state.bgColor} />
</div>
)
}
}
class ColorLabel extends React.Component {
render() {
return ReactDOM.createPortal(
": " + this.props.color,
colorHeading
);
}
}
ReactDOM.render(
<div>
<Colorizer />
</div>,
document.querySelector("#container")
);
</script>
</body>
</html>