【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教程

广告
将在 10 秒后关闭
bannerAds