ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jsx语法

2021-05-27 23:32:19  阅读:211  来源: 互联网

标签:const toLowerCase myData 标签 语法 jsx VDOM


jsx语法

<!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'))

	</script>
</body>
</html>
    

语法规则:

		jsx语法规则:
					1.定义虚拟DOM时,不要写引号。
					2.标签中混入JS表达式时要用{}。
					3.样式的类名指定不要用class,要用className。
					4.内联样式,要用style={{key:value}}的形式去写。
					5.只有一个根标签
					6.标签必须闭合
					7.标签首字母
							(1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。
							(2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。

重点:

  • 引入js变量时使用{变量名},还可以用于js表达式,但不能有逻辑性语句(例如for if)

    const myId = 'aTgUiGu'
    const myData = 'HeLlo,rEaCt'
    const VDOM=(
    	<h1 id={myId}>
    	{myData}
    	</h1>
    )
    
  • jsx中样式类名不是class,是className

  • jsx中内联样式不能直接“ ”指定,要用{{样式键值对}}

    <span style={{color:'white',fontSize:'29px'}}>{myData.toLowerCase()}</span>
    
  • 虚拟dom只有一个根标签

    错误实例:

    const VDOM = (
    			<h2 className="title" id={myId.toUpperCase()}>
    				<span style={{color:'white',fontSize:'29px'}}>{myData.toLowerCase()}</span>
    			</h2>
    			<input type="text"/>    //error error error
    )
    
  • 标签首字母--小写,找html同名元素 --大写,渲染react组件

  • 不能遍历对象,遍历产生html标签时,要指定唯一key给虚拟dom

        <ul>
    		{
    			data.map((item,index)=>{
    				return <li key={index}>{item}</li>
    			})
    		}
    	</ul>
    

标签:const,toLowerCase,myData,标签,语法,jsx,VDOM
来源: https://www.cnblogs.com/rabbithacker/p/jsx.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有