JSX语法

JSX就是 React.js 描述页面 UI 的方式(JSX 其实就是 JavaScript 对象)

JSX语法需要bable进行编译,React.createElement()

  1. import React from 'react'
  2. import ReactDOM from 'react-dom'
  3. const element = <h1>Hello world</h1>;
  4. ReactDOM.render(element,document.querySelector('#root'))

JSX为我们提供了创建react元素方法(React.createElement(component, props, …children))的语法糖(syntactic sugar)。上面的代码实质上等价于:

  1. import React from 'react'
  2. import ReactDOM from 'react-dom'
  3. var element = React.createElement(
  4. "h1",
  5. null,
  6. "Hello, world!"
  7. )
  8. ReactDOM.render(element,document.getElementById('root'))

每个 DOM 元素的结构都可以用 JavaScript 的对象来表示。你会发现一个 DOM 元素包含的信息其实只有三个:标签名,属性,子元素。

  1. <div>
  2. <h1 className='title'>React</h1>
  3. </div>

所以 HTML的所有的信息我们都可以用合法的 JavaScript 对象来表示的。

  1. React.createElement(
  2. "div",
  3. null,
  4. React.createElement(
  5. "h1",
  6. { className: 'title' },
  7. "React"
  8. )
  9. )

嵌入变量

用大括号包裹

  1. let name = 'Liu'
  2. let element = <p className = {name} />

大括号内可以写入变量,数字,求值表达式…

  1. let name = 'LiuEnQing'
  2. let male = true
  3. let obj = {
  4. age:24,
  5. tal:13947368104
  6. }
  7. let ele = <p>
  8. {name}<br />
  9. {obj.age}<br />
  10. <span>{male ? '男' : '女'}</span>
  11. </p>

注释

  1. {/*[需要注释内容]*/}