React入门学习笔记1

前言

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进来来查看

 

 所以能得出以下结论:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【BASH】回顾与知识点梳理(二)

【BASH】回顾与知识点梳理 二 二. Shell 的变量功能2.1 什么是变量?2.2 变量的取用与设定: echo, 变量设定规则: set/unset2.3 环境变量的功能用 set 观察所有变量 (含环境变量与自定义变量)export: 自定义变量转成环境变量那如何将环境变量转成自定义变…

《向量数据库指南》——当前向量数据库的赛道有哪些?

当前,向量数据库赛道主要分为四个类别: 基于PG、Clickhouse 等进行魔改或者插件化实现的向量数据库:这类解决方案以现有的关系数据库或列存数据库作为基础,通过修改或插件扩展的方式添加向量搜索功能。PG Vector 是这类解决方案的…

【设计模式——学习笔记】23种设计模式——外观模式Facade(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍类图出场角色 案例实现案例一类图代码实现 案例二类图代码实现 外观模式在Mybatis源码中的应用总结文章说明 案例引入 在家庭影院中,要享受一场电影,需要如下步骤: 直接用遥控器:统筹各设备开关开…

Linux - 进程控制(进程替换)

0.引入 创建子进程的目的是什么? 就是为了让子进程帮我执行特定的任务 让子进程执行父进程的一部分代码 如果子进程想执行一个全新的程序代码呢? 那么就要使用 进程的程序替换 为什么要有程序替换? 也就是说子进程想执行一个全新的程序代码&a…

FSM:Full Surround Monodepth from Multiple Cameras

参考代码:None 介绍 深度估计任务作为基础环境感知任务,在基础上构建的3D感知才能更加准确,并且泛化能力更强。单目的自监督深度估计已经有MonoDepth、ManyDepth这些经典深度估计模型了,而这篇文章是对多目自监督深度估计进行探…

three.js实现vr全景图

方法: 可以利用Threejs中的立方体或者球体实现全景图功能,把立方体或球体当成天空盒子,将无缝衔接的图片贴上,看起来就像在一个场景中,相机一般放置在中央。 three.js中文网 1、立方体实现 立方体6个面要贴上6个方向的图片&…

Pytorch深度学习-----神经网络之非线性激活的使用(ReLu、Sigmoid)

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…

html:去除input/textarea标签的拼写检查

默认情况下&#xff0c;textarea 会启动拼写和语法检查&#xff0c;表现效果就是单词拼写错误会出现红色下划线提示 <textarea></textarea>效果 有时&#xff0c;我们并不需要拼写检查&#xff0c;可以通过配置属性spellcheck"false" 去除拼写和语法检…

物联网远程智能控制设备——开关量/正反转百分比控制

如今生产生活的便利性极大程度上得益于控制技术的发展&#xff0c;它改变了传统的工作模式&#xff0c;并将人们从【纯劳力】中解放出来。如今&#xff0c;随着科学技术的进步&#xff0c;控制器的种类及应用领域也越来越多。 物联网远程智能控制设备就是一种新型的、能够用于…

抄写Linux源码(Day2:构建调试环境)

我们计划把操作系统运行在 qemu-system-x86_64 上&#xff0c;使用 gdb 调试 经过 RTFM&#xff0c;可以使用 qemu-system-x86_64 -s -S 让 qemu 在启动之后停住 接着在另一个窗口运行 gdb&#xff0c;输入命令 target remote localhost:1234&#xff0c;即可连接qemu并调试运…

泛微oa 二次开发指南(ecology)

目录标题 一、环境搭建&#xff08;一&#xff09;先下载安装泛微oa&#xff08;ecology&#xff09;&#xff08;二&#xff09;idea环境搭建二、官方文档三、开发规范&#xff08;里面有入门案例&#xff09;四、三方系统调用oa系统接口五、oa系统所有接口文档六、ecology的一…

mysql事务日志

事务有4中特性&#xff1a;原子性&#xff0c;一致性&#xff0c;隔离性和持久性。那么事务的四种特性到底是基于什么机制实现的呢&#xff1f; 1. 事务的隔离性由 锁机制 实现。 2. 而事务的原子性&#xff0c;一致性和持久性由事务的redo日志和undo日志来保证的。 ~ redo l…

2023-07-30 LeetCode每日一题(环形链表 II)

2023-07-30每日一题 一、题目编号 142. 环形链表 II二、题目链接 点击跳转到题目位置 三、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 n…

HTTP协议 和 HTTPS协议的区别(4点) HTTPS的缺点 HTTP如何使用SSL/TLS协议加密过程 CA证书干啥的

&#xff08;一&#xff09;HTTP协议 和 HTTPS协议的区别&#xff08;4点&#xff09;&#xff1a; 1. HTTP协议的端口号是80&#xff0c; HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头&#xff0c;HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTP…

MedSAM通用医学分割基础模型(2023+Segment Anything in Medical Images)

摘要&#xff1a; MedSAM&#xff0c;这是为通用医学图像分割设计的首个基础模型。利用包含超过一百万张图像的精心策划的数据集的力量&#xff0c;MedSAM不仅优于现有的最先进的分割基础模型&#xff0c;而且表现出与专业模型相当甚至更好的性能。此外&#xff0c;MedSAM能够…

计算机视觉实验:人脸识别系统设计

实验内容 设计计算机视觉目标识别系统&#xff0c;与实际应用有关&#xff08;建议&#xff1a;最终展示形式为带界面可运行的系统&#xff09;&#xff0c;以下内容选择其中一个做。 1. 人脸识别系统设计 (1) 人脸识别系统设计&#xff08;必做&#xff09;&#xff1a;根据…

深度学习(33)——CycleGAN(2)

深度学习&#xff08;33&#xff09;——CycleGAN&#xff08;2&#xff09; 完整项目在在这里&#xff1a;欢迎造访 文章目录 深度学习&#xff08;33&#xff09;——CycleGAN&#xff08;2&#xff09;1. Generator2. Discriminator3. fake pool4. loss定义5. 模型参数量6…

MySQL和Oracle区别

由于SQL Server不常用&#xff0c;所以这里只针对MySQL数据库和Oracle数据库的区别 (1) 对事务的提交 MySQL默认是自动提交&#xff0c;而Oracle默认不自动提交&#xff0c;需要用户手动提交&#xff0c;需要在写commit;指令或者点击commit按钮 (2) 分页查询 MySQL是直接在SQL…

PostMan调用metersphere接口 ,copy完事~

获取token接口&#xff1a; http://192.****:8081/signin &#xff0c;接下来就可以调用其他功能的接口了 例&#xff1a;创建账户&#xff0c;将获取到的access_token放置在接口请求的token中 其他接口调用同上