【react】初始react


前言

本文是react基础第二章,想要了解更多,可点进主页,查看第一章


一、组件

函数组件

function App(props){
	console.log('App属性:'props)
	//返回的JSX代表React元素
	return(
		<h1>函数组件-App组件,接受到的标题:{props.title}</h1>
		)
	}
	export default App

本质上是一个函数,在函数体内部返回需要渲染的React元素

import App fom './App'
//...
root.render(<App title="标题" />

以组件名作为自定义标签名称进行组件渲染
注意,组件名必须首字母大写(原因:babel在转译jsx时,是通过标签名首字母的大小写来区分自定义组件与html原生标签,如果首字母小写,则认为是html标签,否则是自定义的组件)

class组件
利用es6中的class来实现:

import React from 'react'
//class组件,继承自React.Component
class App extends React.Component{
	render(){
	return(
	<h2>React class 组件,接受到的属性:{this.props.title}</h2>
	)
  }
}
export default App

class组件要继承自React.Component父类,必须在类体中实现render()方法

二、推荐在react中一个超级好用的插件react基础语法提示功能

三、React.Fragment

如果不想在最终渲染的DOM树中出现包裹的父节点,可使用<React.Fragment>进行包裹处理。可简写为<></>

<React.Fragment>
	<div>块级内容</div>
	<span>文本</span>
<React.Fragment>

<>
 <div>块级内容</div>
 <span>文本内容</span>
</>

四、State

state是class组件中组件自身要使用到的私有数据,可如下定义:

class App extends React.Compnent{
	state = {}//相当于构造器中this.state = {}
	render(){}
}

在类主体中定义的state属性,相当于在constructor()构造器中的简写。
注意:
1、要修改state中的状态数据,需要调用this.setState()方法来修改(这个方法是从父类中继承过来的),页面才会响应式重新渲染
2、setState()在修改状态数据时会进行状态数据合并(合并修改)
3、setState()可能是异步的

五、事件处理

在html标签中绑定事件

<div onclick="handler()"></div>

在react中,使用JSX渲染元素时,绑定事件与在html标签中绑定事件类似,但onXxx事件句柄使用时命名规范修改为驼峰命名规范:

<Button onClick={handler}></Button>

六、事件函数中的this指向问题

如果绑定的事件函数是普通函数表达式,则函数体内的this为undefined,所以要在事件函数中使用到this来引用组件实例,需要改变函数的this指向或使用箭头函数表示。

handleClick(){}
<button onClick={this.handleClick.bind(this)>添加</button>
handleClick=()=>{}
<button onClick={this.handleClick>添加</button>

七、表单处理

react没有vue中表单元素上使用的v-model来双向绑定(React不是MVVM的框架),但可以利用v-model的原理来实现类似效果:

import React,{Component} from 'react'
export default class TodoInput extends Component{
	state = {inputValue:'abc'}
}
handleInputChange = (event) =>{
	this.setState({
			inputValue:event.target.value
			})
}
render(){
	return (
	<div className="todo-input">
		{this.state.inputValue} <br />
		<input
			type="text"
			placeholder="请输入新待办事项标题"
			value={this.state.inputValue}
			onChange={this.handleInputChange}
		/>
		)
	}
}

在表单元素上绑定value属性和侦听onChange事件


总结

以上就是react的基础内容,本文仅仅简单介绍了react的基础,若有不对的地方,请多多指教。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值