React JSX语法糖

JSX其实是React.createElement的一个语法糖,它的语法如下

React.createElement(component, props, ...children)

例如这段代码

class Hello extends React.Component {
  render() {
    return <div>Hello {this.props.toWhat}</div>;
  }
}

ReactDOM.render(
  <Hello toWhat="World" />,
  document.getElementById('root')
);

可以被转换成下面这样

class Hello extends React.Component {
  render() {
    return React.createElement('div', null, `Hello ${this.props.toWhat}`);
  }
}

ReactDOM.render(
  React.createElement(Hello, {toWhat: 'World'}, null),
  document.getElementById('root')
);

一般为了避免重复编写多次React.createElement,一般像下面这样写

const e = React.createElement;

ReactDOM.render(
  e('div', null, 'Hello World'),
  document.getElementById('root')
);

猜你喜欢

转载自blog.csdn.net/Her_smile/article/details/81415328