1、JSX简介:
- 什么是JSX?
- JSX特点:
- 具有javascript全部功能
- 可以很好的描述UI应该呈现出它应有的本质形式
- 可以使React显示更多有用的错误和警告信息
2、在JSX中嵌入表达式
- 嵌入变量
|
const name = 'Josh Peres' const element = <h1>Hello, { name }</h1> ReactDOM.render( element, document.getElementById('root') ) |
- 嵌入表达式
|
// 嵌入表达式 const element = <h1>1 + 2 = { 1 + 2 }</h1> ReactDOM.render( element, document.getElementById('root1') ) |
- 嵌入函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
// 嵌入函数 function formatName (user) { return user.firstName + ' ' + user.lastName } const user = { firstName: 'Harper', lastName: 'Perez' } const element = ( <h1> Hello, { formatName(user) } </h1> ) ReactDOM.render( element, document.getElementById('root2') ) |
3、JSX也是一个表达式
-
将JSX赋值给变量
-
将JSX当参数传入
-
从函数中返回JSX
|
// JSX也是一个表达式 function getGreeting (user) { if (user) { return <h1>Hello, { formatName(user) }!</h1> } return <h1>Hello, Stranger.</h1> } ReactDOM.render( getGreeting(), document.getElementById('root3') ) |
4、JSX特定属性
注:React DOM 使用 camelCase
(小驼峰命名)来定义属性的名称
-
使用引号指定属性值为字符串字面量
|
const element = <div tabIndex="0"></div> |
- 使用大括号在属性值中插入Javascript表达式
|
const element = <img src={user.avatarUrl}></img> |
5、使用 JSX 指定子元素
-
标签里面没有内容,可以使用 />
来闭合标签
|
const element = <img src={user.avatarUrl} /> |
-
JSX 标签里可以包含很多子元素
|
const element = ( <div> <h1>Hello!</h1> <h2>Good to see you here.</h2> </div> ) |
6、JSX 防止注入攻击
7、JSX 表示对象