使用JSX的基本使用
注释
1 import React from "react"; 2 3 class App extends React.Component { 4 render() { 5 return ( 67 {/* 注释 */} 89 ) 10 } 11 } 12 13 export default App;
- 在 JSX 中遇到 < 尖括号会当做元素来处理
- 在 JSX 中遇到 { 大括号会当做 JavaScript 代码来处理
绑定属性
import React from "react";
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
id: 'p2',
box: 'box1'
}
}
render() {
return (
原生语法绑定
绑定一个变量
给元素添加类名时不能使用class
绑定样式必须通过对象的形式来绑定
)
}
}
export default App;
- 给元素的属性绑定变量就使用 {} 大括号语法
- 绑定类名不能使用 class ,因为 JSX 语法会转换为 createElement 函数调用
- 在绑定样式的时候必须通过 {} 对象的形式来编写,如果原生是 font-size 短横线必须将其转换为驼峰写法 fontSize
嵌入内容
import React from "react"; class App extends React.Component { constructor(props) { super(props); this.state = { message: 'hello react' } } render() { return () } } export default App;{this.state.message}
- 任何合法的 JavaScript 表达式都可以写在 {} 大括号中
- {} 大括号中放置 [] 空数组 undefined null true false 不会显示任何内容
书写规范
import React from "react"; class App extends React.Component { render() { return () } } export default App;建议将JSX放置在()圆括号中
- 在 JSX 中只能有一个根元素
- 在 JSX 能用单标签就不要使用双标签
绑定事件
import React from "react"; class App extends React.Component { render() { return () } myFn = (event) => { console.log('绑定事件使用驼峰命名'); console.log(event, '这个事件对象是React基于原生事件对象合成的一个事件对象'); } } export default App;
- 为什么要在箭头函数的函数体中调用方法?
- 我需要自己手动调用方法,而不是让 React 帮我调用
- 方便传递参数
- 方便传递事件对象,这个事件对象是 React 基于原生的事件对象封装的