149-JSX语法

30 篇文章 0 订阅
14 篇文章 1 订阅




JSX语法

JSX就是Javascript和XML结合的一种格式。
React发明了JSX,利用HTML语法来创建虚拟DOM。
当遇到<,JSX就当HTML解析,
遇到{就当JavaScript解析。


来点代码

注意:script三个导入要按顺序来

<script src="js/react.development.js"></script>
<script src="js/react-dom.development.js"></script>
<script src="js/babel.min.js"></script>

<body>

<div id="root"></div>
<script type="text/babel">
	let num=1;
	let str='hello world';

	function fnReverse(str){
		return str.split('').reverse.join('');
	}	

	let el=(
	
	<div>
		<h1>abc<h1>
		<p>123</p>
		<p>{str}</p>
		<p>{str.split('').reverse().join('')}</p>
		<p>{fnReverse(str)}</p>

	<p>ok? 'true':'false'</p>
	<p>1==2? 'yes':'no'</p>

	</div>

	);

	ReactDOM.render(el,document.getElementById('root'));
</script>

</body>





组件和属性
组件最终要返回一个JSX对象
不过它和JSX对象的区别是
它在JSX对象的基础上
还带有自己的方法和属性
能完成自己的交互功能

组件有两种定义方式
1.函数式定义
2.类定义

函数式定义组件
function welcome(props){
return <h1>hello,{props.name}</h1>;
}

类方式定义组件
class Welcome extends React.Component{
render(){
	return <h1>hello,{this.props.name}</h1>;
}
}



组件渲染
组件渲染和JSX对象一样,可以通过ReactDOM.render()方法来渲染组件

function Welcome(props){
return <h1>hello,{props.name}</h1>;
}

const element=<Welcome name="Alice" />

ReactDOM.render(){
element,
document.getElementById('root')
};






继续代码
<script src="js/react.development.js"></script>
<script src="js/react-dom.development.js"></script>
<script src="js/babel.min.js"></script>

<body>
<div id="root"><div>

<script type="text/babel">
function Welcome(props){
	return <h1>hello,{props.name}<h1>;
}

ReactDOM.render(<Welcome name="Alice" />,
		document.getElementById('root')
		)

</script>
</body>





类方式定义组件
<script src="js/react.development.js"></script>
<script src="js/react-dom.development.js"></script>
<script src="js/babel.min.js"></script>

<body>

<div id="root"></div>

<script type="text/babel">
class Welcome extends React.Component{
	render(){
	return(
	<h1>hello,{this.props.name}</h1>
	);
	}
}

ReactDOM.render(<Welcome name="Alice" />,
		document.getElementById('root')
		);

</body>







组件的嵌套使用

<script src="js/react.development.js"></script>
<script src="js/react-dom.development.js"></script>
<script src="js/babel.min.js"></script>

<body>

<div id="root"></div>

<script type="text/babel">
class Welcome extends React.Component{
	render(){
	return(
	<h1>hello,{this.props.name}</h1>
	);
	}
}

class App extends React.Component{
	render(){
	return(
	<div>
	<Welcome name="abc01" />
	<Welcome name="abc02" />
	<Welcome name="abc03" />
	<Welcome name="abc04" />
	</div>
	);
	}
}

ReactDOM.render(<Welcome name="Alice" />,
		document.getElementById('root')
		);

</body>



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值