Create react app and complete HelloWorld of TodoList
- React is the front-end framework of FaceBook, which is characterized by componentization, high encapsulation and component reuse. The disadvantage is that both view and data are included in the render function, which does not achieve the separation of data and view
- The JSP syntax initiated by React has become an independent standard and recognized by the open source community. Compared with Vue template syntax, JSP syntax is more readable
- The emergence of ReactApp makes it possible for front-end programmers to make apps quickly
ReactApp
Install and run React project
Through npm global installation, you can create React scripts
sudo npm install -g create-react-app
Create a React project (project name is React to do list)
create-react-app react-to-do-list
Create project react to do list succeeded
Run project react to do list
cd react-to-do-list
npm start
Todolist effect core component
import React, { Component } from 'react';
class Todo extends Component{
constructor(props){
super(props);
this.state = {
to_do_list:['a', 'b'],
title: ""
}
}
// Handle click events
clickHandle(){
// Get current title content
let newTitle = this.state.title;
// Refuse to add if the current title content is empty
if (newTitle.length === 0){
return
}
// Get the contents of the current list and assign it to a temporary array
let oldList = this.state.to_do_list;
// Add the current title content to the temporary array
oldList.push(newTitle)
// Update to do list content and empty input content
this.setState({
to_do_list: oldList,
title: ""
})
}
// Process input value update
inputHandle(event){
// Sync the newly entered text to the title
const newTitle = event.target.value;
this.setState({
title: newTitle
})
}
render(){
let pStyle = {
padding: 10,
margin: 10,
backgroundColor: "#ffde00",
color: "#333",
display: "inline-block",
fontFamily: "monospace",
fontSize: "32",
textAlign: "left",
fontSize: 30,
};
let inputStyle = {
width : 300,
heigth: 20,
fontSize: 18
}
let btnStyle = {
width: 50,
heigth: 20,
fontSize: 18,
}
return (
<p style={pStyle}>React Realization<br/>Todo task list<br/>
<input style={inputStyle} value={this.state.title} onChange={this.inputHandle.bind(this)}></input>
<button onClick = {this.clickHandle.bind(this)}>Add to</button>
{this.state.to_do_list.map((item, index) => {
return <li key={index}>{item}</li>
}
)}
</p>
)
}
}
export default Todo
Keywords:
React
npm
JSP
Vue
Added by SieRobin on Thu, 02 Apr 2020 04:14:24 +0300