React项目指导

原文链接:React项目详解GITHUB:react-webpack-config持续更新…
React项目指导
使用webpack需要安装的依赖

webpack,webpack-cli,react,react-dom

babel-loader,@babel/core,@babel/preset-env,@babel/preset-react

设置.babelrc,{“presets”: [“@babel/preset-env”,”@babel/preset-react”]}

设置scripts:
“dev”: “webpack –mode development”,
“build”: “webpack –mode production”

设置webpack-dev-server:
devServer: {
compress: true,
port: 9000,
hot: true
},

“start”: “webpack-dev-server –config webpack.config.js”

设置performance:
performance: {
hints: false
}

Component

基本组件
let title = <h1>Hello, world!</h1>

ReactDOM.render(title,document.getElementById(‘root’))

动态组件
import React from ‘react’;
import ReactDOM from ‘react-dom’;

let displayTime = () => {
let nowTime = (
<div>
<span>现在时间:{new Date().toLocaleTimeString()}</span>
</div>
);
ReactDOM.render(t
nowTime,
document.getElementById(‘root’)
);
};

setInterval(displayTime, 1000);

class组件构建器
import React, {Component} from ‘react’;
import ReactDOM from ‘react-dom’;

class HelloTitle extends Component {
render() {
return <h1>Hello,World!</h1>
}
}

ReactDOM.render(
<HelloTitle/>,
document.getElementById(‘root’)
);

props属性
import React, {Component} from ‘react’;
import ReactDOM from ‘react-dom’;

class HelloTitle extends Component {
render() {
return <h1>Hello,{this.props.name}!</h1>
}
}

let titleDiv = (
<div>
<HelloTitle name=”React”/>
<HelloTitle name=”World”/>
</div>
);

ReactDOM.render(
titleDiv,
document.getElementById(‘root’)
);

props多层使用
import React, {Component} from ‘react’;
import ReactDOM from ‘react-dom’;

class HelloTitle extends Component {
render() {
return <h1>Hello,{this.props.name}!</h1>
}
}

class HelloDiv extends Component {
render() {
return <div><HelloTitle name={this.props.name}/></div>
}
}

ReactDOM.render(
<HelloDiv name=”React”/>,
document.getElementById(‘root’)
);

组件复用
import React, {Component} from ‘react’;
import ReactDOM from ‘react-dom’;

class HelloTitle extends Component {
render() {
return <h1 style={this.props.style}>{this.props.content}</h1>
}
}

class HelloDiv extends Component {
render() {
return <div>
<HelloTitle content=”比较大的字” style={{‘fontSize’: 18}}/>
<HelloTitle content=”比较小的字” style={{‘fontSize’: 12}}/>
</div>
}
}

ReactDOM.render(
<HelloDiv/>,
document.getElementById(‘root’)
);

Component的状态state和生命周期

state属性
constructor(props) {
super(props);
this.state = {
time: new Date().toLocaleTimeString()
}
}

render() {
return <h1>现在时间是{this.state.time}</h1>
}
组件构建完成后先执行的动作,componentDidMount():
componentDidMount() {
let upTime = () => {
this.setState({time: new Date().toLocaleTimeString()})
};
setInterval(upTime, 1000)
}

setState()修改状态值
this.setState({time: new Date().toLocaleTimeString()})

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理