React 基础

本文详细介绍了React的基础知识,包括如何创建React组件、使用JSX、元素渲染、组件Props的使用,以及State和生命周期的概念。强调了正确处理State的重要性,如避免直接修改State和理解State更新的异步性质。此外,文章还涵盖了事件处理、条件渲染、列表渲染、表单管理和无障碍辅助功能。最后,讨论了React中的Context API、高阶组件以及Refs的使用,帮助开发者更好地掌握React的应用。
摘要由CSDN通过智能技术生成

初识React


步骤一:添加一个DOM容器到HTML

<div id="app"></div>

步骤二:添加Script标签

// 加载 React
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
// 加载 React组件
<script src="app.js"></script>

步骤三:创建一个React组件

const e = React.createElement;
class LikeButton extends React.Component {
   
	constructor(props) {
   
		super(props);
		this.state = {
   
			liked: false
		};
	}
	render () {
   
		if (this.state.liked) {
   
			return 'You liked this.';s
		}
		// 函数调用方式
		return e(
			'button',
			{
   onClick: () => this.setState({
   
				liked: true
			})},
			'Like'
		)
		// JSX方式
		return (
			<button onClick={
   () => this.setState({
    
			liked: true})}
			>
			Like
			</button>
		)
	}
}
const domContainer = document.querySelector('#app');
ReactDOM.render(e(LikeButton), domContainer);

添加JSX脚本

<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

创建新的React应用

// 前提是要安装node
// 执行命令
npx create-react-app my-app
cd my-app
npm start

JSX 了解


/*
	在下面的例子中,我们声明了一个名为 name 的变量,然后在 JSX 中使用它,并将它包裹在大括号中:
*/
const name = 'heqiuyu';
const element = <h1>Hello, {
   name}</h1>;

ReactDOM.render(
	element,
	document.getElementById('app')
);
/*
	在下面的示例中,我们将调用 JavaScript 函数 formatName(user) 的结果,并将结果嵌入到 <h1> 元素中。
*/
function formatName (user) {
   
	return user.firstName + ' ' + user.lastName; 
}
const user = {
   
	firstName: 'heqiuyu',
	lastName: 'baixiaoyun'
};
const element = (
	<h1>Hello, {
   formatName(user)}</h1>
);
ReactDOM.render(
	element,
	document.getElementById('app')
);

JSX 特定属性

// 你可以通过使用引号,来将属性值指定为字符串字面量:
const ele = <div tabIndex="0"></div>
// 也可以使用大括号,来在属性值中插入一个 JavaScript 表达式:
const ele = <img src={
   user.avatarUrl} />
/*
	***注意:在属性中嵌入 JavaScript 表达式时,不要在大括号外面加上引号。你应该仅使用引号(对于字符串值)或大括号(对于表达式)中的一个,对于同一属性不能同时使用这两种符号。***
*/

元素渲染


// 第一步:
<div id="app"></div>

// 第二步:
const ele = <h1>Hello, world</h1>
ReactDOM.render(ele, document.getElementById('app'));

更新已渲染的元素

// React 元素是不可变对象。一旦被创建,你就无法更改它的子元素或者属性
function tick () {
   
	const ele = (
		<div>
			<h1>Hello, world</h1>
			<h2>It is {
   new Date().toLocaleTimeString()}</h2>
		</div>
	)
	ReactDOM.render(
		ele,
		document.getElementById('app')
	);
}

setInterval(tick, 1000);

组件 & Props


组件,从概念上类似于 JavaScript 函数。它接受任意的入参(即 “props”),并返回用于描述页面展示内容的 React 元素

函数式组件

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

类组件

class Welcome extends React.Component {
   
	render () {
   
		return <h1>Hello, {
   this.props.name}</h1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值