当前位置: 首页 > news >正文

React :一、简单概念

目录

1.什么是React?

2.谁开发的

3.为什么要学React?

4.React的特点?

5.React依赖包

 6.第一个React程序

7.虚拟DOM的两种创建方法

8.虚拟DOM和真实DOM


1.什么是React?

用于构建用户界面的JavaScript库,是一个将数据渲染成HTML视图的开源JavaScript库。

以前处理一个页面:

1.发送请求获取数据,

2.处理数据(过滤、整理格式等)

3.操作DOM呈现页面

现在第三步交给React去做。

2.谁开发的

3.为什么要学React?

1.原生JavaScript操作DOM繁琐,效率低(DOM-API操作UI)。

2.使用JavaScript直接操作DOM,浏览器会进行大量的重绘重排。

3.原生JavaScript没有组件化的编码方案,代码服用效率低。

4.React的特点?

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

声明式:就是直接说你要干什么,不用一步步命令对方起身,穿衣服,刷牙,而是直接让对方刷牙。

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

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

 原先是直接对真实DOM进行操作,现在是对应一个虚拟DOM,它存在内存里,当加一个数据时,原先是把全部的数据都加载一遍,现在虚拟DOM会进行比较,重复数据的就不会重新提交,只有新增的数据操作真实DOM。

5.React依赖包

React 是用jsx写的不是js

babel.main.js 的作用  ES6 ==> ES5  、jsx ==> js

react.devolopment.js ==> react核心库

react.dom.development.js ==>react操作DOM,react拓展库

 6.第一个React程序

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>hello react</title>
</head>
<body><!-- 准备好一个"容器" --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="../js/react.development.js"></script><!-- 引入react-DOM,用于支持react操作DOM --><script type="text/javascript" src="../js/react-dom.development.js"></script><!-- 引入bable,用于将jsx转为js --><script type="text/javascript" src="../js/babel.min.js"></script><script type="text/babel">/* 此处一定要写babel*///1.创建虚拟DOMconst VDOM = <h1>Hello react!!!</h1> /*此处一定不要写引号,因为不是字符串 *///2.渲染虚拟DOM到页面ReactDOM.render(VDOM,document.getElementById('test'))</script>
</body>
</html>

 

7.虚拟DOM的两种创建方法

开发过程中使用jsx方式,jsx就是js在创建虚拟DOM时太繁琐,而出现的技术,但是浏览器识别不了babel,在浏览器运行时也是把jsx转换为js运行,只是方便了我们操作。

语法糖:就是一种技术的简化方式。

1.jsx的方式

 2.js方式

 

8.虚拟DOM和真实DOM

<div id="demo"></div>:这就是一个真实DOM。

const TDOM = document.getElementById('demo');

TDOM 就是一个真实DOM

下如就是虚拟DOM,虚拟DOM就是一个object类型的对象。

 

虚拟DOM身上的属性很少,所以较轻,真实则很多重。

 

相关文章:

React :一、简单概念

目录 1.什么是React&#xff1f; 2.谁开发的 3.为什么要学React&#xff1f; 4.React的特点&#xff1f; 5.React依赖包 6.第一个React程序 7.虚拟DOM的两种创建方法 8.虚拟DOM和真实DOM 1.什么是React&#xff1f; 用于构建用户界面的JavaScript库&#xff0c;是一个将…...

Actipro WinForms Studio Crack

Actipro WinForms Studio Crack 已验证Microsoft.NET 7兼容性。 添加了MetroDark配色方案。 添加了支持MetroLight和MetroDark颜色方案的MetroScrollBarRenderer。 添加了IWindowsColorScheme接口&#xff0c;该接口将替换对WindowsColorScheme的大多数引用。 添加了IWindowsCo…...

英伦四地到底是什么关系?

英格兰、苏格兰、威尔士和北爱尔兰四地到底是什么关系&#xff0c;为何苏格兰非要独立&#xff1f;故事还要从中世纪说起。大不列颠岛位于欧洲西部&#xff0c;和欧洲大陆隔海相望。在古代&#xff0c;大不列颠岛和爱尔兰属于凯尔特人的领地。凯尔特人是欧洲西部一个庞大的族群…...

Google三大论文之GFS

Google三大论文之GFS Google GFS&#xff08;Google File System&#xff09; 文件系统&#xff0c;一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS 虽然运行在廉价的普遍硬件设备上&#xff0c;但是它依然了提供灾难冗余的能力&#xff0c;为大量客户机提供了…...

嵌入式安防监控项目——exynos4412主框架搭建

目录 一、模块化编程思维 二、安防监控项目主框架搭建 一、模块化编程思维 其实我们以前学习32使用keil的时候就是再用模块化的思维。每个硬件都单独有一个实现功能的C文件和声明函数&#xff0c;进行宏定义以及引用需要使用头文件的h文件。 比如简单的加减乘除取余操作我们…...

YOLOv5s网络模型讲解(一看就会)

文章目录前言1、YOLOv5s-6.0组成2、YOLOv5s网络介绍2.1、参数解析2.2、YOLOv5s.yaml2.3、YOLOv5s网络结构图3、附件3.1、yolov5s.yaml 解析表3.2、 yolov5l.yaml 解析表总结前言 最近在重构YOLOv5代码&#xff0c;本章主要介绍YOLOv5s的网络结构 1、YOLOv5s-6.0组成 我们熟知YO…...

kkfileView linux 离线安装

文章目录前言一、安装 LiberOffice二、安装kkfileView1.下载安装包2.启动总结前言 一、安装 LiberOffice 下载https://kkfileview.keking.cn/LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz 安装 tar -zxvf LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz cd LibreOffice_7.1.4.2_L…...

如何编写BI项目之ETL文档

XXXXBI项目之ETL文档 xxx项目组 ------------------------------------------------1---------------------------------------------------------------------- 目录 一 、ETL之概述 1、ETL是数据仓库建构/应用中的核心…...

【LeetCode】剑指 Offer 24. 反转链表 p142 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/submissions/ 1. 题目介绍&#xff08;24. 反转链表&#xff09; 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 【测试用例】&#xff1a; 示…...

LAY-EXCEL导出excel并实现单元格合并

通过lay-excel插件实现Excel导出&#xff0c;并实现单元格合并&#xff0c;样式设置等功能。更详细描述&#xff0c;请去lay-excel插件文档查看&#xff0c;地址&#xff1a;http://excel.wj2015.com/_book/docs/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B.html一、安装这里使用Vue…...

配置VM虚拟机Centos7网络

配置VM虚拟机Centos7网络 第一步&#xff0c;进入虚拟机设置选中【网络适配器】选择【NAT模式】 第二步&#xff0c;进入windows【控制面板\网络和 Internet\网络连接】设置网络状态。 我们选择【VMnet8】 点击【属性】查看它的网络配置 2 .我们找到【Internet 协议版本 4(TCP…...

Kafka 位移主题

Kafka 位移主题位移格式创建位移提交位移删除位移Kafka 的内部主题 (Internal Topic) : __consumer_offsets (位移主题&#xff0c;Offsets Topic) 老 Consumer 会将位移消息提交到 ZK 中保存 当 Consumer 重启后&#xff0c;能自动从 ZK 中读取位移数据&#xff0c;继续消费…...

详细讲解零拷贝机制的进化过程

一、传统拷贝方式&#xff08;一&#xff09;操作系统经过4次拷贝CPU 负责将数据从磁盘搬运到内核空间的 Page Cache 中&#xff1b;CPU 负责将数据从内核空间的 Page Cache 搬运到用户空间的缓冲区&#xff1b;CPU 负责将数据从用户空间的缓冲区搬运到内核空间的 Socket 缓冲区…...

2023年场外个股期权研究报告

第一章 概况 场外个股期权&#xff08;Over-the-Counter Equity Option&#xff09;&#xff0c;是指由交易双方根据自己的需求和意愿&#xff0c;通过协商确定行权价格、行权日期等条款的股票期权。与交易所交易的标准化期权不同&#xff0c;场外个股期权的合同内容可以根据交…...

k8s pod,ns,pvc 强制删除

一、强制删除pod$ kubectl delete pod <your-pod-name> -n <name-space> --force --grace-period0解决方法&#xff1a;加参数 --force --grace-period0&#xff0c;grace-period表示过渡存活期&#xff0c;默认30s&#xff0c;在删除POD之前允许POD慢慢终止其上的…...

力扣第99场双周赛题目记录(复盘)

第一题 2578.最小和分割 给你一个正整数 num &#xff0c;请你将它分割成两个非负整数 num1 和 num2 &#xff0c;满足&#xff1a; num1 和 num2 直接连起来&#xff0c;得到 num 各数位的一个排列。 换句话说&#xff0c;num1 和 num2 中所有数字出现的次数之和等于 num 中所…...

spring事务失效原因

一.抛出事务不支持的异常 原理&#xff1a; Spring事务默认支持RuntimeException异常&#xff0c;抛出的异常为RuntimeException异常及其子类异常事务均可生效&#xff0c;而我们日常常见的异常基本都继承自RuntimeException&#xff0c;所以无需指定异常类型事务也能生效。 但…...

pikachu靶场CSRF之TOKEN绕过

简介 Pikachu靶场中的CSRF漏洞环节里面有一关CSRF TOKEN&#xff0c;这个关卡和其余关卡稍微有点不一样&#xff0c;因为表单里面存在一个刷新就会变化的token&#xff0c;那么这个token是否能绕过呢&#xff1f;接下来我们来仔细分析分析 实战过程 简单尝试 先利用任意一个…...

Windows中配置docker没有hyper-v功能解决方案

&#x1f468; 作者简介&#xff1a;大家好&#xff0c;我是Taro&#xff0c;前端领域创作者 ✒️ 个人主页&#xff1a;唐璜Taro &#x1f680; 支持我&#xff1a;点赞&#x1f44d;&#x1f4dd; 评论 ⭐️收藏 文章目录前言解决步骤&#xff1a;1.新建文档2. 另存为3. 功能…...

电子台账:模板制作之五——二级过滤与多条件组合

1 前言工作中&#xff0c;经常会遇到很复杂的数据&#xff0c;比如内销产品和出口产品、正常产品和报废产品都混在一块儿。电子台账中&#xff0c;需要把这些数据都区分开&#xff0c;分别汇总。这种情况&#xff0c;可以用台账软件的二级过滤功能来处理&#xff0c;实际上就是…...

造相-Z-Image-Turbo亚洲美女LoRA应用场景:短视频封面/公众号配图/营销素材生成

造相-Z-Image-Turbo亚洲美女LoRA应用场景&#xff1a;短视频封面/公众号配图/营销素材生成 1. 引言&#xff1a;为什么你需要这个AI图片生成工具 如果你正在为这些事头疼&#xff1a; 每天要制作大量短视频封面&#xff0c;但设计耗时又费力公众号文章找不到合适的配图&…...

AHT10 vs DHT11:国产温湿度传感器性能对比与选型建议

AHT10 vs DHT11&#xff1a;国产温湿度传感器性能对比与选型建议 在物联网和智能硬件快速发展的今天&#xff0c;温湿度传感器作为环境感知的基础元件&#xff0c;其性能直接影响到整个系统的可靠性和精度。面对市场上众多的传感器选择&#xff0c;开发者常常需要在成本、精度和…...

MySQL 8.0 等保合规实战:手把手配置开源审计插件 server_audit.so

MySQL 8.0 等保合规审计插件实战指南 在数字化转型浪潮中&#xff0c;数据库安全审计已成为企业合规运营的刚需。对于使用MySQL 8.0的企业而言&#xff0c;如何在不影响性能的前提下满足等保2.0三级及以上对数据库审计的要求&#xff0c;是每位DBA和安全工程师必须掌握的技能。…...

Galio:终极React Native UI框架入门指南 - 快速构建精美移动应用

Galio&#xff1a;终极React Native UI框架入门指南 - 快速构建精美移动应用 【免费下载链接】galio Galio is a beautifully designed, Free and Open Source React Native Framework 项目地址: https://gitcode.com/gh_mirrors/ga/galio Galio是一款免费开源的React N…...

J-Flash烧录KEA128芯片全流程指南(附常见错误排查)

J-Flash烧录KEA128芯片全流程指南&#xff08;附常见错误排查&#xff09; 对于嵌入式开发工程师来说&#xff0c;掌握可靠的烧录工具是基本功。J-Flash作为SEGGER公司推出的专业烧录软件&#xff0c;以其稳定性和广泛的芯片支持著称。本文将带你从零开始&#xff0c;手把手完成…...

别再自己憋大纲了!这4款AI写作工具能自动生成逻辑严密的论文框架

别再死磕大纲了&#xff01;这 4 款 AI 工具能一键生成逻辑严密、贴合学术规范的论文框架&#xff0c;帮你快速搞定开题与写作第一步。一、PaperRed&#xff08;国内论文首选&#xff0c;学术专属&#xff09;核心定位&#xff1a;全流程学术写作&#xff0c;大纲 初稿一站式大…...

实战演练:基于ClaudeCode与快马平台构建博客评论交互组件

最近在开发个人博客网站时&#xff0c;遇到了一个常见需求&#xff1a;需要为每篇文章添加评论功能。这个看似简单的模块&#xff0c;实际上涉及不少细节处理。经过一番摸索&#xff0c;我发现在InsCode(快马)平台上结合ClaudeCode的智能生成能力&#xff0c;可以高效完成这个任…...

LivePortrait完整部署指南:快速上手高效人像动画生成

LivePortrait完整部署指南&#xff1a;快速上手高效人像动画生成 【免费下载链接】LivePortrait Bring portraits to life! 项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait LivePortrait是一款开源的AI驱动人像动画工具&#xff0c;能够将静态肖像照片…...

STM32F407的GPIO模式选对了吗?从LED驱动到按键读取,CubeMX配置全解析

STM32F407的GPIO模式选对了吗&#xff1f;从LED驱动到按键读取的实战指南 当你第一次拿到STM32开发板时&#xff0c;闪烁LED可能是你的第一个实验。但很快你会发现&#xff0c;GPIO的功能远不止于此——从简单的LED控制到复杂的按键检测&#xff0c;不同的应用场景需要完全不同…...

窗口大小强制调整工具终极指南:如何轻松掌控任意应用程序窗口尺寸

窗口大小强制调整工具终极指南&#xff1a;如何轻松掌控任意应用程序窗口尺寸 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的应用程序窗口而烦恼吗&#xff1f;某…...