【React入门】React是什么
首先
由于一个前端开发初学者目前参与了一个React项目,他将其在教程等学习中获得的知识整理如下。
React是一种JavaScript库。
React是用于构建用户界面(UI)的JavaScript库。
可以通过组合称为“组件”的独立小部件来构建UI。
React的使用示例
让我们来看一下使用React的示例应用程序。
以下是一个简单的计数器应用程序,它根据按钮的点击来增加或减少值。
请在CodePen上查看Amsel的计数器示例。
class Counter extends React.Component{
constructor(props){
super(props);
this.state = {
count: 0,
};
}
render(){
return (
<div>
<div className="title">Counter</div>
<button
className="minusButton"
onClick={() => this.setState({count: this.state.count-1})}
>
-
</button>
<div className="counter">{this.state.count}</div>
<button
className="plusButton"
onClick={() => this.setState({count: this.state.count+1})}
>
+
</button>
</div>
);
}
}
ReactDOM.render(
<Counter />,
document.getElementById('app')
);
反计算机组件
class Counter extends React.Component{
constructor(props){
super(props);
this.state = {
count: 0,
};
}
render(){
return (
<div>
<div className="title">Counter</div>
<button
className="minusButton"
onClick={() => this.setState({count: this.state.count-1})}
>
-
</button>
<div className="counter">{this.state.count}</div>
<button
className="plusButton"
onClick={() => this.setState({count: this.state.count+1})}
>
+
</button>
</div>
);
}
}
上述代码中的Counter是一个React组件。
Counter组件接收一个名为props的参数,在构造函数中初始化值,并在render方法中返回一个描述视图的虚拟DOM。
Counter组件通过state对象来存储应用程序的状态,并在状态变化时使用差分重新渲染的机制。
通过这个状态管理机制,在上述的示例应用中,按下按钮的结果会立即被绘制到屏幕上。
组件调用
ReactDOM.render(
<Counter />,
document.getElementById('app')
);
这段代码是组件的调用部分。
ReactDOM.render方法将Counter组件返回的虚拟DOM渲染到指定的DOM节点上。
JSX- JSX
上述的代码具有混合了 JavaScript 和 HTML 标签的独特外观,这是因为它是使用 JSX 编写的。
JSX是JavaScript XML的简写,是一种基于XML风格设计的JavaScript扩展语法。
JSX的优点
JSX只是扩展语法,用JSX编写的代码会通过Babel转换成JavaScript函数调用。
换句话说,React可以不使用JSX来编写。
如果不使用JSX来编写,就会变成以下这样。
function Welcome(props){
return React.createElement(
'h1',
null,
`Welcome ${props.name}`,
);
}
ReactDOM.render(
<Welcome name="Tom" />,
document.getElementById('app')
);
使用JSX编写相同代码的结果如下。
function Welcome(props) {
return <h1>Welcome, {props.name}</h1>;
}
ReactDOM.render(
<Welcome name="Tom" />,
document.getElementById('app')
);
通过使用JSX,可以将结构可视化为类似HTML的形式,从而提高可读性。
请看以下资料
React教程