JSX

JSX = javascript xml 或者 JSX=javascript extension

写法

//  dom类型标签
const element = <h1>123</h1>
//  react组件类型标签
const element = <HelloWorld />
//  混用dom和react
const element = (
    <div>
        <HelloWorld />
    </div>
)
//  使用表达式计算
const element = <div>{1+2}</div>
//  表达式中使用列表渲染
const element = (
    <ul>
        {
            todos.map((item,index),function(){
                return <li key="index">item<li>
            })
        }
    </ul>
)

注意:

  • 使用表达式的方法时,不能使用js多行语句。

展开属性

​ 展开属性是es6语法,请在支持es6的环境中使用展开属性

请看以下代码,假定a的属性都是接收过来的props值,我们可以写成

const attr = {
    href:"www.baidu.com",
    target:"_blank"
}
return <a {...attr}>Hello</a>

...展开运算符会把属性一一展开

注意

  • 使用jsx渲染元素时,只能使用js表达式,不能使用js多行语句。遇到需要使用多行语句时,可以使用三目运算符或者逻辑与替代
//  写法一
let complete;
const element = (
    <div>
        {
            complete?<CompletedList />:null
        }
    </div>
)
​
//  写法二
let complete;
const element = (
    <div>
        {
            complete&&<CompletedList />
        }
    </div>
)

注释

在jsx中注释的格式为{/* 注释 */},比如

consr element =(
    <div>
        {/* 这里是一个注释 */}
        <span>React</span>
    </div>
)