React系统学习2(组件三大核心属性之state)

之前简单学习的react中函数式组件和类式组件的基本使用,函数式组件适用于定义简单的组件,类式组件适用于定义复杂的组件。

复杂的组件指的是有状态的组件,所谓的状态,在react中就是三大核心属性之一的state。

从一个小例子说起

假设需要这个一样组件,访问的时候展示一个人的名字和心情,当点击的时候就切换到另一个人,再次点击就再切换回去。

那么对这个需求进行分析,就会知道首先肯定是需要有地方进行信息展示,然后就是肯定需要有点击事件,再然后就是需要有地方保存数据。

基于上边的分析,在还不是太会react的情况下,基于之前的js基础,这个组件一开始可能会先做如下这样的定义:

<body>
	<div id="test"></div>
	<!--核心库-->
	<script type="text/javascript" src="../../js/react.development.js"></script>
	<!--操作dom-->
	<script type="text/javascript" src="../../js/react-dom.development.js"></script>
	<!--用户将jsx转为js-->
	<script type="text/javascript" src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>

	<script type="text/babel">
		 // 1.类式组件
		class ClassComponent extends React.Component{
			name='tuzongxun'
			mood='happy'
			render() {
				return <h1 onclick="changeUser()">I'm {this.name},today i'm {this.mood}</h1>
			}
			changeUser(){
				if(this.name === 'tuzongxun'){
					this.name='tzx'
					this.mood='unhappy'
				}else{
					this.name='tuzongxun'
					this.mood='happy'
				}
				
			}
		}
		// 2.渲染虚拟DOM
		ReactDOM.render(<ClassComponent/>,document.getElementById('test'))

	</script>
</body>

然后当在浏览器访问的时候,就会发现点击根本是没有反应的,如果打开浏览器控制台,就会看到有如下的错误提示:

Warning: Invalid event handler property `onclick`. Did you mean `onClick&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React是一个用于构建用户界面的JavaScript库。React通过构建组件化的UI来让前端开发更加高效和可维护。React的特点包括简单易学、高效、灵活、可重用和可组合等。 React的优势包括:虚拟DOM提高了性能、组件化开发更加高效、JSX使得代码易于阅读和理解、单向数据流使得应用更加可维护。 React的劣势包括:学习曲线较陡峭、需要依赖其他工具库或框架来构建完整的应用、一些开发者认为JSX语法不太直观。 JSX是一种将JavaScript和HTML结合的语法。它允许开发者在JavaScript代码中编写HTML标记,从而使得前端开发更加高效和灵活。浏览器无法读取JSX,因为它不是原生的HTML语法,需要使用编译器将其转化为浏览器可读的JavaScript代码。 虚拟DOM是React核心概念之一,它是一个轻量级的JavaScript对象。React通过虚拟DOM来提高性能,因为它可以在修改DOM之前先修改虚拟DOM,然后再进行一次性的DOM操作,从而减少浏览器的重绘和回流。 组件React的另一个核心概念,它是UI的构建块。组件可以是一个按钮、一个输入框、一个列表等等,它们都可以在组件层次结构中组合在一起,构成一个完整的UI。 state和props是React组件中两种重要的数据来源。state代表组件内部的状态数据,它可以通过setState方法来修改。props代表组件属性,它可以从父组件传递给子组件React组件的生命周期包括:初始化阶段、挂载阶段、更新阶段和卸载阶段。在不同的阶段中,组件会触发不同的生命周期方法,比如componentDidMount、shouldComponentUpdate等。这些生命周期方法可以让开发者在不同的阶段中执行不同的操作,从而更好地控制组件的行为。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值