后端程序员React初接触1

后端程序员React初接触

学习react基础与相关库的使用学习 包括react基础 路由 组件库等等

react是用于构建用户界面的JavaScript库

  • 发送请求获取数据
  • 处理数据
  • 操作dom呈现页面(react帮忙操作dom)

数据渲染为视图 有facebook打造并开源

解决的问题

  • dom操作繁琐
  • 使用js直接操作dom浏览器会大量操作dom进行重排
  • 没有组件化编码方案代码复用率低
  • 可以进行移动端的开发

特点:使用虚拟dom+优秀的diffing算法

使用非脚手架的形式

  • babel.js作用js转jsx
  • react.development.js 核心库
  • react-dom.development.js拓展库

引用时存在顺序先使用核心库在使用拓展库

搭建初始结构

<!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>Document</title>
</head>
<body><!--准备好一个容器--><div id="app"></div><!-- 引入核心库 --><script type="text/javascript" src="../js/react.development.js"></script><!-- 映入拓展库 --><script type="text/javascript" src="../js/react-dom.development.js"></script><!-- 映入babel用于将jsx转为js --><script type="text/javascript" src="../js/babel.min.js"></script><!-- 表示写的是jsx此处写的是babel --><script type="text/babel"></script>
</body>
</html>

案例实现

<!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>Document</title>
</head>
<body><!--准备好一个容器--><div id="app"></div><!-- 引入核心库 --><script type="text/javascript" src="../js/react.development.js"></script><!-- 映入拓展库 --><script type="text/javascript" src="../js/react-dom.development.js"></script><!-- 映入babel用于将jsx转为js --><script type="text/javascript" src="../js/babel.min.js"></script><!-- 表示写的是jsx此处写的是babel --><script type="text/babel">//创建虚拟domconst VDOM = <h1>Hello,React</h1> /*此处一定不要写引号,因为不是字符串*/// 渲染dom到页面ReactDOM.render(VDOM,document.getElementById('app'))</script>
</body>
</html>

在这里插入图片描述

使用js创建虚拟dom

<!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>使用js方式创建虚拟dom</title>
</head>
<body><!--准备好一个容器--><div id="app"></div><!-- 引入核心库 --><script type="text/javascript" src="../js/react.development.js"></script><!-- 映入拓展库 --><script type="text/javascript" src="../js/react-dom.development.js"></script><!-- 表示写的是jsx此处写的是babel --><script type="text/javascript">//创建虚拟domconst VDOM =React.createElement('h1',{id:'title'},'Hello,React1')// 渲染dom到页面ReactDOM.render(VDOM,document.getElementById('app'))</script>
</body>
</html>

产生的问题是:原始的js方式创建有嵌套形式的虚拟dom繁琐因此需要使用jsx 使用jsx的方式更接近与之前的方式const VDOM =React.createElement(‘h1’,{id:‘title’},‘Hello,React1’).React.createElement()方式的语法糖

虚拟DOM与真实DOM

本质是object类型对象
虚拟dom比较轻与打断点后的真实dom比有更少的属性
在这里插入图片描述
在这里插入图片描述

虚拟dom是react内部在用,无需dom上那么多的元素

jsx简介

全称:JavaScript XML

存储数据由xml转变为json进行存储

语法规则
  • 定义虚拟dom时不要写引号
  • 标签里面写js表达式时要用{}的形式
  • 样式类名的指定不要用class要用className
  • 内联样式的定义使用{{color:‘red’,fontsize:‘29px’}}
  • jsx的要求不能有多个根标签
  • 标签必须闭合
  • 小写字母开头转为html中的同名元素,若无对应的同名元素则报错
  • 若大写字母开头会找对应的组件,若没有则报错

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

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

相关文章

集群部署篇--Redis 哨兵模式

文章目录 前言一、哨兵模式介绍&#xff1a;1.1 介绍&#xff1a;1.2 工作机制&#xff1a; 二、哨兵模式搭建&#xff1a;2. 1 redis 主从搭建&#xff1a;2.2 setinel 集群搭建&#xff1a;2.2.1 配置&#xff1a; sentinel.conf &#xff1a;2.2.2 运行容器&#xff1a;2.2.…

jQuery日历签到插件下载

jQuery日历签到插件下载-遇见你与你分享

【MySQL】数据库之存储过程(“SQL语句的脚本“)

目录 一、什么是存储过程&#xff1f; 二、存储过程的作用 三、如何创建、调用、查看、删除、修改存储过程 四、存储过程的参数&#xff08;输入参数&#xff0c;输出参数&#xff0c;输入输出参数&#xff09; 第一种&#xff1a;输入参数 第二种&#xff1a;输出参数 …

Leetcode算法系列| 10. 正则表达式匹配

目录 1.题目2.题解C# 解法一&#xff1a;分段匹配法C# 解法二&#xff1a;回溯法C# 解法三&#xff1a;动态规划 1.题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 1.‘.’ 匹配任意单个字符 2.‘.’ 匹配任意单个字…

【DevOps 工具链】日志管理工具 - 22种 选型(读这一篇就够了)

文章目录 1、简述2、内容分类3、归纳对比表&#xff08;排序不分先后&#xff09;4、日志管理主要目的5、日志管理工具 22种 详细&#xff08;排序不分先后&#xff09;5.1、ManageEngine EventLog Analyzer5.1.1、简介5.1.2、效果图5.1.3、日志管理架构5.1.4、EventLog Analyz…

HarmonyOS 路由传参

本文 我们来说两个page界面间的数据传递 路由跳转 router.pushUrl 之前我们用了不少了 但是我们只用了它的第一个参数 url 其实他还有个params参数 我们第一个组件可以编写代码如下 import router from ohos.router Entry Component struct Index {build() {Row() {Column() …

交互式笔记Jupyter Notebook本地部署并实现公网远程访问内网服务器

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下…

C编程指针篇----包括历年真题

一&#xff0c;&#xff08;20年&#xff09;用指针字符逆序 代码&#xff1a; int main() {char s[7] "monkey", * p1, * p2, c;p1 p2 s;while (*p2) p2;p2--;while (p2 > p1) {c *p1; *p1 *p2; *p2-- c; }printf("%s", s);return 0; } 运行结…

【华为机试】2023年真题B卷(python)-解密犯罪时间

一、题目 题目描述&#xff1a; 警察在侦破一个案件时&#xff0c;得到了线人给出的可能犯罪时间&#xff0c;形如 “HH:MM” 表示的时刻。 根据警察和线人的约定&#xff0c;为了隐蔽&#xff0c;该时间是修改过的&#xff0c;解密规则为&#xff1a; 利用当前出现过的数字&am…

jdk与cglib动态代理及原理

Spring的AOP在运行时多以jdk及cglib动态代理来实现。&#xff08;作者jdk是1.8版本&#xff09; 1 jdk 动态代理 Java中使用动态代理&#xff0c;只能对接口进行代理&#xff0c;不能对普通类进行代理。主要是由一个类及一个接口来实现&#xff1a; InvocationHandler&#…

【并发设计模式】聊聊等待唤醒机制的规范实现

在多线程编程中&#xff0c;其实就是分工、协作、互斥。在很多场景中&#xff0c;比如A执行的过程中需要同步等待另外一个线程处理的结果&#xff0c;这种方式下&#xff0c;就是一种等待唤醒的机制。本篇我们来讲述等待唤醒机制的三种实现&#xff0c;以及对应的应用场景。 G…

Python基础进阶3:函数和方法不是一回事

你好&#xff0c;我是kelly&#xff0c;今天分享的是Python的函数与方法的不同点。 对于Python的函数和方法是不一样的&#xff0c;这一点需要注意下。 一、结论 1、不存在隐式传参&#xff0c;所有参数都是显式传递的是函数。 2、存在隐式传参的是方法&#xff0c;一般指隐式…

神经元科技发布AI agent—“萨蔓莎”

今天神经元科技发布AI agent—“萨蔓莎“&#xff08;Samantha &#xff09;&#xff01; 取名“萨蔓莎”&#xff0c;是来自于一部讲述AI的电影《HER》。 电影讲述的是电影讲述男子西奥多汤布里&#xff08;Theodore Twombly&#xff0c;饰&#xff09;与拟人化萨曼莎&#…

日志记录、跟踪和指标

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 日志记录、跟踪和指标是系统可观察性的三大支柱。 下图显示了它们的定义和典型架构。 记录 日志记录系统中的离散事件。例如&#xff0c;我们可以将传入请求或对…

挑战Python100题(8)

100+ Python challenging programming exercises 8 Question 71 Please write a program which accepts basic mathematic expression from console and print the evaluation result. 请编写一个从控制台接受基本数学表达式的程序,并打印评估结果。 Example: If the follo…

蜘蛛目标检测数据集VOC格式3900张

蜘蛛是一类广泛分布于地球各地的节肢动物&#xff0c;它们属于蛛形纲动物&#xff0c;是无脊椎动物的一个大类。蜘蛛的身体通常分为两个部分&#xff0c;头胸部和腹部&#xff0c;与其他节肢动物相比&#xff0c;蜘蛛的身体相对较小。 蜘蛛具有典型的八只腿&#xff0c;它们的…

结构体:枚举

#include<iostream> using namespace std; int main() {enum weekday { mon, tus, wed, thu, fri, sat,sun }; //声明枚举类型 enum weekday day; //定义枚举变量 int a, b, c, d, e, f, g, loop; //定义整型变量 char ch A; //定义字符变量 f thu; //按照题意&a…

搜索关键字高亮

文章目录 思路分析具体实现源码 不知道大家平常有没有自己空闲的时候写一些小demo的习惯呢&#xff1f;我个人觉得&#xff0c;在空闲的时候时不时写一个小功能&#xff0c;日积月累&#xff0c;当你以后遇到需要使用的时候&#xff0c;就可以直接拿来使用&#xff0c;当然了。…

Java基础02-Java编程基础

文章目录 变量&#xff08;Variables&#xff09;局部变量和成员变量局部变量&#xff08;Local Variables&#xff09;成员变量&#xff08;Instance Variables&#xff09; 标识符&#xff08;Identifiers&#xff09;八种基本数据类型原始数据类型&#xff08;Primitive Dat…

ESP32:整合存储配网信息和MQTT笔记

文章目录 1.给LED和KEY的所用IO增加配置项1.1 增加配置文件1.2 修改相应的c源码 2. 把mqtt\tcp的工程整合到一起2.1 在何处调用 mqtt_app_start() 3. 测试MQTT4. 完整的工程源码 有一段时间没有玩ESP32&#xff0c;很多知识点都忘记了。今天测试一下MQTT&#xff0c;做个笔记。…