JSX语法规则:
- 定义虚拟DOM时,不要写引号
- 标签中混入JS表达式时用{}
- 样式的类名指定不要用class,要用className
- 内联样式,要用style={{key:value}}的形式去写
- 只有一个根标签
- 标签必须闭合
- 标签首字母:
- -- 若小写字母开头,则表示该标签转为HTML标签中同名元素,若HTML中无该标签对应的同名元素,则报错。
- -- 若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。
具体在React中应用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jsx语法规则</title>
<style>
.title{
background-color: orange;
width: 200px;
}
</style>
</head>
<body>
<!-- 准备好一个“容器” -->
<div id="test"></div>
<!-- 引入react核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作DOM -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!-- 引入babel,用于将jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>
<script type="text/babel">
const myId = "aTguiGU"
const myData = "hellO,ReacT"
// 1.创建虚拟DOM
const VDOM = (
<div>
<h2 className='title' id={myId.toLowerCase()}>
{myData}
</h2>
<h2 className="title" id={myId.toUpperCase()}>
<span style={{color:'white',fontSize:'20px'}}>{myData.toUpperCase()}</span>
</h2>
<input type="text"/>
</div>
)
// 2.渲染虚拟DOM到页面
ReactDOM.render(VDOM,document.getElementById('test'))
/*
JSX语法规则:
1.定义虚拟DOM时,不要写引号
2.标签中混入JS表达式时用{}
3.样式的类名指定不要用class,要用className
4.内联样式,要用style={{key:value}}的形式去写
5.只有一个根标签
6.标签必须闭合
7.标签首字母:
-- 若小写字母开头,则表示该标签转为HTML标签中同名元素,若HTML中无该标签对应的同名元素,则报错。
-- 若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。
*/
</script>
</body>
</html>