React学习第3天——JSX语法规则
JSX全称:Javascript XML
是React定义的一种类似于XML的JS扩展语法
jsx语法规则:
1.定义虚拟DOM时,不要写引号。
2.标签中混入JS表达式时要用{}。
3.样式的类名指定不要用class,要用className。
4.内联样式,要用style={{key:value}}的形式去写。
5.只有一个根标签
6.标签必须闭合
7.标签首字母
(1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
(2).若大写字母开头,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()}> <span style={{color:'white',fontSize:'29px'}}>{myData.toLowerCase()}</span> </h2> <h2 className="title" id={myId.toUpperCase()}> <span style={{color:'white',fontSize:'29px'}}>{myData.toLowerCase()}</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.标签首字母 (1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。 (2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。 */ </script> </body> </html>
一定注意区分:【js语句(代码)】与【js表达式】
1.表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方
下面这些都是表达式:
(1). a
(2). a+b
(3). demo(1)
(4). arr.map()
(5). function test () {}
2.语句(代码):
下面这些都是语句(代码):
(1).if(){}
(2).for(){}
(3).switch(){case:xxxx}
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>jsx小练习</title> 6 </head> 7 <body> 8 <!-- 准备好一个“容器” --> 9 <div id="test"></div> 10 11 <!-- 引入react核心库 --> 12 <script type="text/javascript" src="../js/react.development.js"></script> 13 <!-- 引入react-dom,用于支持react操作DOM --> 14 <script type="text/javascript" src="../js/react-dom.development.js"></script> 15 <!-- 引入babel,用于将jsx转为js --> 16 <script type="text/javascript" src="../js/babel.min.js"></script> 17 18 <script type="text/babel" > 19 /* 20 一定注意区分:【js语句(代码)】与【js表达式】 21 1.表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方 22 下面这些都是表达式: 23 (1). a 24 (2). a+b 25 (3). demo(1) 26 (4). arr.map() 27 (5). function test () {} 28 2.语句(代码): 29 下面这些都是语句(代码): 30 (1).if(){} 31 (2).for(){} 32 (3).switch(){case:xxxx} 33 34 */ 35 //模拟一些数据 36 const data = ['Angular','React','Vue'] 37 //1.创建虚拟DOM 38 const VDOM = ( 39 <div> 40 <h1>前端js框架列表</h1> 41 <ul> 42 { 43 data.map((item,index)=>{ 44 return <li key={index}>{item}</li> 45 }) 46 } 47 </ul> 48 </div> 49 ) 50 //2.渲染虚拟DOM到页面 51 ReactDOM.render(VDOM,document.getElementById('test')) 52 </script> 53 </body> 54 </html>

浙公网安备 33010602011771号