React学习之进阶非JSX的痛处(十七)

从开始学习React接触到JSX,就知道这个JSX语法就是一个用于简化的代码的方式,React并没有规定你一定要使用这个,你也可以用React.createElement(component,props,...children)纯的javascript语法来处理它

JSX语法

class Hello extends React.Component {
  render() {
    return <div>Hello {this.props.toWhat}</div>;
  }
}
ReactDOM.render(
  <Hello toWhat="World" />,
  document.getElementById('root')
);

JSX语法

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')
);

注意孩子内容要使用类的元素要用${}来处理

如果大家想了解更多的JSXjavascript之间的语法转换,可以查找在线的Babel编译器

如果你觉得React.createElement()写法太麻烦了可以,这样转换

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

就上面这些例子而言,我们可以非常明显看出,JSX和纯javascript两者实现同样效果的差异,显然,前者更能够帮助我们简化代码,理清代码的结构和层次,所以,千言万语汇成一句话,请使用JSX

下一篇将讲React中的更新

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值