React | 认识React开发

这篇具有很好参考价值的文章主要介绍了React | 认识React开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✨ 个人主页:CoderHing

🖥️ React.js专栏:认识React开发
🙋‍♂️ 个人简介:一个不甘平庸的平凡人🍬

💫 系列专栏:吊打面试官系列  16天学会Vue 11天学会React  Node专栏

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力!❤️


目录

一、React的介绍和特点

React的介绍

React的特点 - 声明式编程

React的特点 - 组件化开发

React的特点 - 多平台适配

二、Hello React

Hello React案例

三、React开发依赖分析

React的开发依赖

Babel和React的关系

四、React组件化的封装

Hello React - 组件化开发

组件化 - 数据依赖

组件化 - 事件绑定


一、React的介绍和特点

React的介绍

  • React是什么?

    • React: 用于构建用户界面的JavaScript库;

React | 认识React开发

React的特点 - 声明式编程

  • 声明式编程:

    • 声明式编程是目前 整个大前端开发的模式: Vue React Flutter SwiftUI

    • 它允许我们 只需要维护自己的状态,当状态改变时,React可以根据最新的状态去渲染我们的UI界面

React的特点 - 组件化开发

  • 组件化开发:

    • 组件化开发页面是目前 前端的流行趋势, 我们会将复杂的界面拆分成一个个小的组件;

React的特点 - 多平台适配

  • 多平台适配:

    • 2013年,发布之初主要是开发Web页面

    • 2015年,推出ReactNative,用于开发移动端跨平台;

    • 2017年,推出ReactVR,用于开发虚拟现实Web应用程序

二、Hello React

Hello React案例

  • 在界面显示一个文本: Hello React

  • 点击下方的按钮,文本改变为:Hello World!

  • 第一步:通过React现实一个Hello React

    • 我们编写React的script代码中,必须添加type="text/babel",可以让babel解析jsx的语法

React | 认识React开发

  • ReactDOM.createRoot函数:用于创建一个React根,之后渲染的内容会包含在这个根中

    • 参数:将渲染的内容,挂载到哪一个HTML元素上

      • 这里我们已经定义一个id为root的div

  • root.render函数:

    • 参数:要渲染的根组件

  • 通过{}语法来引入外部的变量或表达式

三、React开发依赖分析

React的开发依赖

  • 开发React必须依赖三个库:

    • react:包含react所必须的核心代码

    • react-dom:react渲染在不同平台所需要的核心代码

    • babel:将jsx转换成React代码的工具

  • 第一次接触React会被繁琐的依赖搞蒙

    • 对于Vue来说,我们只是依赖一个Vue.js文件即可,但是react居然要依赖三个包

    • 这三个库是 各司其职的,目的就是让每一个库只单纯做自己的事情

    • 在React的0.14版本之前是没有react-dom这个概念的,所有功能都包含在react中;

  • 为什么要进行拆分?因为react-native

    • react包中包含了react web和react-native所共同拥有的核心代码

    • react-dom针对web和native所完成的事情不同

      • web端:react-dom会将jsx最终渲染成真实的DOM,显示在浏览器中

      • native端:react-dom会将jsx最终渲染成原生的控件(如Android中的Button,IOS中的UIButton)

Babel和React的关系

  • babel是什么?

    • 又名 Babel.js

    • 目前前段使用非常广泛的编译器,转移器

    • 如当下很多浏览器并不支持ES6的语法,但是确实ES6的语法非常简洁和方便,我们开发时希望使用它们.

    • 那么编写源码时我们就可以使用ES6来编写,之后通过Babel工具,将ES6转成大多数浏览器都支持的ES5的语法

  • React和Babel的关系:

    • 开发React其实可以不适用babel

    • 前提是我们自己使用React.createElement来编写源代码,他编写的代码 非常的繁琐和可读性差.

    • 那么我们就可以直接编写 jsx的语法,并且让 babel帮助我们转换成React.createElement

四、React组件化的封装

Hello React - 组件化开发

  • 我们可以将其封装成一个组件:

    • root.render 参数 是一个HTML元素或一个组件

    • 我们可以先将之前的业务逻辑封装到一个组件中,然后传入到ReactDOM.render函数中的第一个参数

  • 在React中,怎么封装一个组件? 使用 类|函数式 的方式进行封装(这里先使用类)

    • 定义一个类 (类名大写,组件的名称必须大写,小写会被认为是HTML元素),继承自 React.Component

    • 实现当前组件的render函数

      • render当中返回的jsx内容,就是之后React会帮助我们渲染的内容

React | 认识React开发

组件化 - 数据依赖

  • 组件化问题:数据应该定义在哪里?

  • 在组件中的数据,我们分为两类:

    • 参与界面更新的数据:当数据变量时,需要更新组件渲染的内容

    • 不参与界面更新的数据:当数据变量时,不需要更新组件渲染的内容

  • 参与界面更新的数据我们称为 参与数据流,这个数据定义在当前对象的state中

    • 可以通过在构造函数中 this.state = {定义的数据},必须得是state

    • 当我们的数据发生变化时,可以调用this.setState来更新数据,并通知React进行update操作

      • 在进行update操作时,就会重新调用render函数,并使用最新数据,来渲染界面

React | 认识React开发

组件化 - 事件绑定

  • 事件绑定中的this

    • 在类中直接定义一个函数,并将这个函数绑定到元素的onClick事件上,当前这个函数的this指向谁?

  • 默认情况下是undefined

    • 为什么是undefined

    • 因为在正常的DOM操作,监听点击,监听函数中的this其实是节点对象

    • 这次因为React并不是直接渲染为真实DOM,我们编写的这个对象只是一个语法糖,它的本质React的Element对象

    • 那么在这里发生监听的时候,react在执行函数时并没有绑定this,默认情况就是undefined

  • 我们在绑定的函数中,可能想要使用当前对象,如执行this.setState函数,就必须拿到当前对象的this

    • 我们需要在传入函数时,给函数绑定this

    • 如button

    • <button onClick={this.changeText.bind(this)}>改变文本</button>文章来源地址https://www.toymoban.com/news/detail-414968.html

到了这里,关于React | 认识React开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DMA驱动开发---认识DMA

    DMA定义: DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。 DMA传输方式: DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CPU寄存器参与的环节,主要涉

    2023年04月21日
    浏览(47)
  • Zynq和FPGA区别——快速认识Zynq开发

    ZYNQ包含了2个部分,双核的ARM和FPGA。根据Xilinx提供的手册,用ARM实现的模块被称为PS,而用FPGA实现的模块被称为PL。简单的说FPA更偏向于逻辑,不跑系统。 ZYNQ内部包含PS和PL两部分,ZYNQ开发有一下四种方式: ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统,它将处

    2024年02月16日
    浏览(52)
  • 【裸机开发】认识中断向量表(设置中断向量偏移的原因)

    之前的LED驱动不存在中断,也就不包含中断的初始化。如果程序包含了中断,我们应还需要初始化哪些内容?要解决这个问题,我们需要先了解一个中断系统包含了哪些内容。 ① 中断向量表 : 描述中断对应的中断服务函数 ,保存在程序开始运行的地方,默认是0x00000000 ②

    2024年02月09日
    浏览(32)
  • 第四章认识Node.js模块化开发

    Node.js系统模块 续上一篇文章第三章认识Node.js模块化开发-CSDN博客,这次继续来认识和总结以下node的常用模块开发 Node.js系统模块是指Node.js自带的一些模块,这些模块可以直接在Node.js中使用,无需安装其他包。以下是常用的Node.js系统模块: fs模块:用于处理文件系统。 htt

    2024年02月08日
    浏览(41)
  • 第六章认识Node.js服务器开发

    目录 Node.js同步和异步编程 基本概念 执行方式 获取异步API的返回值 网页基础扩展 项目 Node.js同步和异步编程 基本概念 同步API(应用程序编程接口)是指只有当前API执行完毕后才能继续执行下一个API。 形象的说同步模式就是一个服务员在某一个时间段内只服务一个客人的模

    2024年02月05日
    浏览(51)
  • 第五章认识Node.js服务器开发

    目录 认识服务器开发 基本概念 基本作用 基本优势 基本组成 Node.js网站服务器 基本概述 基本步骤 基本特点 认识HTTP协议 基本概述 HTTP的请求消息和响应消息 请求消息 响应消息 HTTP请求处理与响应处理 GET请求参数 POST请求参数 路由 静态资源访问 认识服务器开发 基本概念 服

    2024年02月07日
    浏览(48)
  • 第三章认识Node.js模块化开发

    目录 认识Node.js 概述 作用 基本使用 Node.js的运行 Node.js的组成 Node.js的语法 Node.js全局对象 认识模块化开发 概述 场景 特点 模块成员的导入和导出 Node.js 模块化语法 导入模块 导出模块 ES6 模块化语法 导入模块 导出模块 项目 认识Node.js 概述 Node.js是一个 开源的、跨平台 的

    2024年02月06日
    浏览(47)
  • 【开发工具】 什么是Office 今天让你认识它

    🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注 \\\"👍点赞\\\" \\\"✍️评论\\\" \\\"收藏❤️\\\" 大家的支持就是我坚持下去的动力! 如果以上内

    2024年02月08日
    浏览(42)
  • 开发基础知识-认识Tomcat,Tomcat基础,快速入门Tomcat

    Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 往细的方面说:Tomcat 是一个 HTTP 服务器。HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式

    2024年02月19日
    浏览(88)
  • [微信小程序] 认识微信小程序及开发环境搭建

      微信公众平台首页 https://mp.weixin.qq.com   微信公众平台测试帐号系统 https://open.weixin.qq.com/connect/qrconnect?appid=wx39c379788eb1286ascope=snsapi_loginredirect_uri=http%3A%2F%2Fmp.weixin.qq.com%2Fdebug%2Fcgi-bin%2Fsandbox%3Ft%3Dsandbox%2Flogin   1、微信公众平台提供的帐号模式   2、各类型帐号的应用场景 餐厅

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包