react学习总结

本文介绍React框架的起源及发展历程,从最初的移动端框架ReactNative到支持Web应用开发的过程。重点讲解了React的 JSX 语法特性,包括组件定义、事件绑定及模板规则,并演示了如何在页面中引入React。

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

    react最早是facebook开源的用于在移动端开发的框架,最早是react native,支持iphone设备,后来支持android,最后慢慢发展为支持web,可以直接在nodejs中使用,也可以直接在前端项目中通过<script type="text/javascript" src="react.js"></script><script type="text/javascript" src="react-dom.js"></script><script type="text/javascript" src="browser.min.js"></script>脚本引入页面的方式来和普通的js库一样使用。

     使用react,最重要的一点就是需要学会jsx语法,它和普通的js语法最大的不同之处是,他构建的html模板是不用引号括起来的,而且react组件最外层必须用一个元素包裹,一般是使用div元素。如下所示:

ReactDOM.render(<div>hello,react.</div>,document.getElementById("root"));

    ReactDOM.render(component,element)方法接收两个参数,第一个就是我们的html模板,也可以是自定义的组件,第二个元素是挂载点,一般是一个带有ID的div元素。其中的html模板,在以往的框架比如jQuery或者原生的javascript中,我们需要通过引号将模板括起来,比如:

"<div>hello,react.</div>"

    但是这里是jsx语法,就不需要引号了,直接是模板:

<div>hello,react.</div>

     既然是jsx的语法,浏览器怎么识别呢,这就需要一个转换库可以选择babel或者browser。我们写的jsx语法的脚本,需要通过<script type="text/babel"></script>标签来包裹,就不再是原来的<script type="text/javascript"></script>了。

     编写组件有三种方式,最原始的是通过函数的形式,如:

function HelloMessage(){
    return <h2>hello,react.</h2>;
}

    这种形式的组件也叫无状态组件(Stateless Component),还可以通过es5的方式编写组件,比如:

React.createClass({
    render : function(){
        return <h2>hello,react.</h2>
    }
});

    在es6中我们可以通过书写class的方式来定义组件,比如:

class HelloMessage extends React.Component{
    render(){
        return <h2>hello,react.</h2>;
    }
}

    这种方式定义的组件,需要继承React.Component。后面两种方式定义的组件也叫有状态组件。

    我们在定义事件绑定的时候,默认我们需要在构造函数中对函数进行如下的绑定:

    另外也有两种方式,一种是在调用的地方使用箭头函数的方式:

    再一个就是直接在调用的地方进行绑定: 

 

    我们知道,jsx语法规定,任何模板最外层,必须要有一个元素包裹,比如有多个平行的元素如:<li>1</li><li>22</li><li>333</li>,在进行渲染的时候,如果最外层没有元素包裹是会报错的。

browser.min.js:39 Uncaught SyntaxError: embedded: Adjacent JSX elements must be wrapped in an enclosing tag (2:29)
  1 | 
> 2 |         var list = <li>1</li><li>22</li><li>333</li>;
    |                              ^
  3 | 		ReactDOM.render(list,document.getElementById("root"));
  4 |     
    at Parser.pp.raise (browser.min.js:39)
    at Parser.pp.jsxParseElementAt (browser.min.js:41)
    at Parser.pp.jsxParseElement (browser.min.js:41)
    at Parser.parseExprAtom (browser.min.js:41)
    at Parser.pp.parseExprSubscripts (browser.min.js:38)
    at Parser.pp.parseMaybeUnary (browser.min.js:38)
    at Parser.pp.parseExprOps (browser.min.js:38)
    at Parser.pp.parseMaybeConditional (browser.min.js:38)
    at Parser.pp.parseMaybeAssign (browser.min.js:38)
    at Parser.pp.parseVar (browser.min.js:39)

    我们在模板最外层加上<div></div>包裹,就好了。

    这种方式虽然不会报错,但是也很别扭,正常来说ul元素的下一级直接就是li元素,但是中间隔着一层div,如何能够不要div,而且语法也不报错呢。我们可以将<div></div>写成<React.Fragment></React.Fragment>,前提是使用的React版本是16及以上。

<script type="text/babel">
	class ListItem extends React.Component{
		render(){
			return (<React.Fragment><li>1</li><li>22</li><li>333</li></React.Fragment>);
		}
	}
	ReactDOM.render(<ListItem />,document.getElementById("root"));
</script>

    这时候生成的html结构就是很理想了。

### React 学习教程与入门指南 #### 一、React 基础环境搭建 为了更好地学习 React,可以采用现代化的模块化工具来管理项目资源。推荐使用 Webpack 或其他类似的构建工具来进行开发环境配置[^1]。 以下是基于 Webpack 的简单 React 开发环境初始化流程: ```bash npx create-react-app my-app cd my-app npm start ``` 通过上述命令即可快速创建并运行一个基础的 React 应用程序。 --- #### 二、React 初学者的学习资料 对于初学 React 的开发者来说,《React 中文入门教程》是一份非常有价值的参考资料[^2]。这份文档涵盖了从基础知识到实际应用的内容,适合新手逐步深入理解 React 的核心概念。 可以通过以下链接访问和下载此 PDF 文件: - **项目地址**: [https://gitcode.com/Open-source-documentation-tutorial/7a5a1](https://gitcode.com/Open-source-documentation-tutorial/7a5a1) --- #### 三、React 核心技术要点 ##### 3.1 JSX 语法简介 JSX 是一种类似于 HTML 的语法规则,用于定义 React 组件中的界面结构。尽管 JSX 并不是必需的,但它极大地提高了代码可读性和维护性[^3]。 示例代码如下: ```jsx function HelloMessage(props) { return ( <div> <h1>Hello, {props.name}!</h1> </div> ); } export default HelloMessage; ``` ##### 3.2 React Hooks 使用说明 Hooks 提供了一种全新的方式,在不编写类组件的情况下实现状态管理和副作用处理。`useState` 和 `useEffect` 是最常用的两个 Hook 函数[^4]。 示例代码展示如何利用 `useMemo` 避免不必要的重新计算逻辑: ```javascript import React, { useState, useMemo } from 'react'; function CounterComponent() { const [count, setCount] = useState(0); // 计算双倍数值,并缓存结果 const doubleValue = useMemo(() => count * 2, [count]); return ( <div> Count: {count} Double Value: {doubleValue} <button onClick={() => setCount(count + 1)}>Increment</button> </div> ); } export default CounterComponent; ``` --- #### 四、总结 以上内容提供了关于 React 学习的基础路径以及一些关键技术点的讲解。如果希望进一步提升技能水平,则需要不断实践并通过真实案例积累经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值