React学习笔记

本文介绍了JSX语法特点及React组件的创建方法,包括组件的状态管理、生命周期以及事件处理等核心概念。同时探讨了如何利用JSX实现组件的结构化和模块化,提升代码的可读性和复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


去除所有的DOM操作;组件把状态和结果一一对应起来,从而直观理解,程序在不同状态时,产生什么输出;



jsx的特点

类XML语法容易接受

增加JS语义

结构清晰

抽象程度高:屏蔽掉手动DOM操作;跨平台(react native)

代码模块化


var HelloMessage = React.createClass({
	render:function(){
		return <div className="test">Hello {this.props.name}</div>
	}
});
React.render(<HelloMessage name="John" />,mountNode);

元素名HelloMessage ,子节点{this.props.name},节点属性:name="John"


JSX语法:

首字母大小写敏感:

大写:自定义的组件HelloMessage

小写:DOM中的组件div


嵌套

求值表达式(可以进行运算)

驼峰命名

html=>htmlFor,class=>className


条件判断

三元表达式

{this.props.name?this.props.name:'world'}


变量

var HelloWorld = React.createClass({
getName:function(){
	if( this.props.name)
		return this.props.name
	else
		return 'world'
	},
	render : funcfion(){
		var name=this.getName();
		return <p>Hello ,{name}</p>
	}
)};
React.render(<div><HelloWorld name="Li"></HelloWorld></div>,document.body)


直接调用函数

return <p>Hello,{this.getName()}</p>

||运算符

{this.props.name || "world"}


非DOM属性

dangerouslySetInnerHtml、ref、key

dangerouslySetInnerHtml:在JSX中直接插入HTML代码

ref:父组件引用子组件===》this.refs.childp(虚拟的DOM节点)

key:提供渲染性能===>组件内部,key不可以相同


JSX解析器

入口函数---》载入其他模块==>解析JSX==>执行JS


组件的生命周期:

初始化:getDefaultProps、getInitialState、componentWillMount、render、componentDidMount


运行中:componentWillReceiveProps、shouldComponUpdate、componentWillUpdate、render、componentDidUpdate


销毁:componentWillUnmount

在删除组件之前进行清理操作,比如计时器和事件监听器


状态只和组件自己相关,由自己维护;组件不能修改属性;

组件在运行时需要修改的数据就是状态。


绑定事件处理函数:

触摸类事件:

onTouchCancel、onTouchEnd、onTouchMove、onTouchStart


键盘类事件:

onKeyDown、onKeyPress、onKeyUp


剪切类事件

onCopy、onCut、onPaste


表单

onChange、onInput、onSubmit


焦点:

onFocus、onBlur


UI元素

onScroll


滚动

onWheel


鼠标

onClik、onContextMenu、onDoubleClick、onMouseDown按下、onMouseEnter进入、onMouseLeave离开、onMouseMove移动、

onMouseOut、onMouseOver、onMouseUp

鼠标拖拽

onDrop、onDrag、onDragEnd、onDragEnter、onDragExit、onDragLeave、onDragOver、onDragStart


组件协同:

组件的协同本质上是对组件的一种组织、管理方式。

目的:逻辑清晰、代码模块化、封装细节、代码可复用










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值