React入门学习笔记1

news2024/11/16 22:52:37

前言

React是一个用来动态构0建用户界面的JavaScript库(只关注于视图)。它可以帮助开发人员轻松地创建复杂的交互式界面,以及管理与用户交互的状态。相比于其他的JavaScript框架,React采用了一种不同的编程模型,称为“组件化编程模型”。这种模型使得组件具有高度的可重用性和可维护性,从而使得开发人员可以更加高效地开发出高质量的应用程序。在本笔记中,我将进行一步步的React学习,包括它的基本概念和用法。

React与Vue的区别

首先,我已经学习完了Vue并做了几个项目,在学习React之前,先了解了一下React与Vue的区别:

  1. 数据绑定方式不同:Vue使用双向数据绑定,React使用单向数据流。
  2. 组件化实现方式不同:Vue使用模板语法实现组件化,React使用JSX语法实现组件化。
  3. 生命周期管理方式不同:Vue提供beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed等生命周期函数;React提供componentWillMount、componentDidMount、componentWillReceiveProps、shouldComponentUpdate、componentWillUpdate、componentDidUpdate、componentWillUnmount等生命周期函数。
  4. 数据管理方式不同:Vue提供Vuex进行数据管理,React则需要使用像Redux这样的库来管理数据。
  5. 性能优化方式不同:Vue使用虚拟DOM和基于依赖追踪的渲染优化,React也使用虚拟DOM和shouldComponentUpdate的优化方式。
  6. 模板渲染方式不同:Vue使用模板编译,React使用JSX语法。
  7. 项目构建方式不同:Vue提供CLI工具Vue-CLI,React提供Create-React-App。

React的特点

1.采用组件化模式、声明式编码,提高开发效率及组件复用率。

2.在React Native中可以使用React语法进行移动端开发

3.使用虚拟DOM+优秀的Diffing算法,尽量减少与真实DOM的交互。
 


前置知识

学习react有一定的前置知识要求,相对于vue来说没有那么好入门

  • 判断this的指向
  • class(类)
  • ES6语法规范
  • npm包管理器
  • 原型、原型链
  • 数组常用方法
  • 模块化

HELLO REACT

导包时,必须先导入react核心库,再导入react周边库和babel,顺序不能错!

jsx语法的script中必须注明babel

且jsx语法中的虚拟DOM内容不要加引号

易错点:

  • 忘记准备“容器”,无DOM结点怎么往里面放呢
  • 虚拟DOM内容加了引号

如果要加两个虚拟DOM,不能这样子写,框起来的语句不是追加动作而是覆盖动作。 

为什么react要求使用jsx而不能使用js?

首先看实现以下效果的jsx和js方法:

jsx方法:

js方法

 如果说要在h1里嵌套一个span的话,更明显的区别就出来了

jsx:

js:

 而babel的机制就是把jsx转换成了js写法,方便了开发者。

 虚拟dom和真实dom

 虚拟dom和真实dom的打印结果分别是:

 直接用console.log打印出来无法看到dom的属性

所以我们要加一个debugger进来来查看

 

 所以能得出以下结论:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/800603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机中的通用LED驱动

前言 项目中需要用到很多的LED灯,存在不同的闪烁方式,比如单闪,双闪,快闪,慢闪等等,我需要一个有如下特性的LED驱动 方便的增加不同闪烁模式可以切换闪烁模式增加LED数目不会有太多的改动方便移植&#x…

《焊接点云处理》-V型焊缝处理

焊接点云处理-V型焊缝处理 前言一、代码二、处理步骤前言 处理效果 一、代码 主函数 #include "CGALRECONSTRUCT.h" #include"PCLFUNCTION.h"int main(int argc

vue+leaflet笔记之地图聚合

vueleaflet笔记之地图聚合 文章目录 vueleaflet笔记之地图聚合开发环境代码简介插件简介与安装使用简介 详细源码(Vue3) 本文介绍了Web端使用Leaflet开发库进行地图聚合查询的一种方法 (底图来源:中科星图),结合Leaflet.markercluster插件能够快速的实现地图聚合查询…

【C++】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动

[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动 在【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值一文中介绍了如何利用…

4.4 if选择结构

4.4 if选择结构 if单选择结构 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样的一个过程在程序中用if语句来表示 语法 if(布尔表达式){//如果布尔表达式为true将执行的语句 }if单选择结构流程图 package com.baidu.www.struct;import …

JVM源码剖析之JIT工作流程

版本信息: jdk版本:jdk8u40思想至上 Hotspot中执行引擎分为解释器、JIT及时编译器,上篇文章描述到解释器过度到JIT的条件。JVM源码剖析之达到什么条件进行JIT优化 这篇文章大致讲述JIT的编译过程。在JDK中javac和JIT两部分跟编译原理挂钩&a…

MySQL 服务器的调优策略

点击上方↑“追梦 Java”关注,一起追梦! 在工作中,我们发现慢查询一般有2个途径,一个是被动的,一个是主动的。被动的是当业务人员反馈某个查询界面响应的时间特别长,你才去处理。主动的是通过通过分析慢查询…

原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)

文章目录 ⭐前言⭐html标签💖table表格的属性💖实现财务报表 ⭐结束 ⭐前言 大家好,我是yma16,本文分享原生html——绘制表格报表加水印。 背景:解决没有ps的情况下使用前端html制作表格报表。 html介绍 HTML&#xf…

【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏模块8

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

C++ inline 内联函数

1.什么是内联函数 在函数声明或定义中,在函数的返回类型前加上C关键字inline,即将函数指定为内联函数。这样可以**解决一些频繁调用的简单函数大量消耗栈空间(栈内存)**的问题。关键字inline必须与函数定义放在一起才能使函数成为…

C++模拟实现queue

1.前言 queue 遵循的原则是先进先出,那到底是用list 还是 vector呢?其实都可以,但是严格来讲vector是不可以的,因为他头删的效率太低了。所以vs官方是不允许用vector的: 因为底层的pop用的是pop_front(), vector是没有…

【C刷题】矩阵相等判断与序列中删除指定的数字

目录 BC105-矩阵相等判断 方法1:两矩阵输入完毕后,进行比较 方法2:在接收过程中直接比较 BC98 - 序列中删除指定的数字 方法1:把要删除的元素改为0 方法2:打印不用删除的元素 方法3:定义两个下标 i 和 j(动图演示) 此篇文章是关于牛客网刷题的做题思路和代码…

Java版知识付费平台免费搭建 前后端分离实现知识付费平台

提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含:录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署,免费售后,专业技术指导,支持PC、APP、H5、小程序多终端同步,支持二次开发…

大模型开发(十一):Chat Completions模型的Function calling功能详解

全文共5000余字,预计阅读时间约15~25分钟 | 满满干货(附代码案例),建议收藏! 本文目标:介绍Chat Completions模型的Function calling参数和使用方法,并完整的实现一个Chat模型的Function calling功能案例。 代码下载地…

字节跳动 EB 级 Iceberg 数据湖的机器学习应用与优化

深度学习的模型规模越来越庞大,其训练数据量级也成倍增长,这对海量训练数据的存储方案也提出了更高的要求:怎样更高性能地读取训练样本、不使数据读取成为模型训练的瓶颈,怎样更高效地支持特征工程、更便捷地增删和回填特征。本文…

Java IO,BIO、NIO、AIO

操作系统中的 I/O 以上是 Java 对操作系统的各种 IO 模型的封装,【文件的输入、输出】在文件处理时,其实依赖操作系统层面的 IO 操作实现的。【把磁盘的数据读到内存种】操作系统中的 IO 有 5 种: 阻塞、 非阻塞、【轮询】 异步、 IO复…

STM32的SDIO功能框图及SDIO结构体

目录 STM32的SDIO功能框图及SDIO结构体 STM32的SDIO功能框图 SDIO适配器 命令路径 CPSM状态机 数据路径 DPSM状态机 数据FIFO 适配器寄存器 SDIO相关结构体 SDIO初始化结构体 SDIO命令初始化结构体 SDIO数据初始化结构体 STM32的SDIO功能框图及SDIO结构体 STM32的…

3d软件动物生活习性仿真互动教学有哪些优势

软体动物是一类广泛存在于海洋和淡水环境中的生物,其独特的形态和生活习性给学生带来了新奇和有趣的学习主题,为了方便相关专业学科日常授课教学,web3d开发公司深圳华锐视点基于真实的软体动物,制作软体动物3D虚拟展示系统&#x…

发点实用的快捷键(mac

切换输入法:ctrlspace /ctrloptionspace(更快捷 切换网页: shifttab 切换应用界面:alttab 关闭页面:altw 搜索:altspace 展示mac隐藏文件: Commangshift . (点) 以下是一些浏览器快捷键&am…

【初阶C语言】认识和使用函数

1. 函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声明和定义 8. 函数递归 一、什么是函数 在数学中有函数,在C语言中也有函数,我们直接先给出一个定义: 在基维百科中函数被定义为子程…