后端程序员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.hqwc.cn/news/310022.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大创项目推荐 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

WPF+Halcon 培训项目实战(12):WPF导出匹配模板

文章目录 前言相关链接项目专栏运行环境匹配图片WPF导出匹配模板如何了解Halcon和C#代码的对应关系逻辑分析&#xff1a;添加截取ROI功能基类矩形圆形 生成导出模板运行结果&#xff1a;可能的报错你的文件路径不存在你选择的区域的内容有效信息过少 前言 为了更好地去学习WPF…

【华为数据之道学习笔记】8-2 数据质量规则

异常数据是不满足数据标准、不符合业务实质的客观存在的数据&#xff0c;如某位员工的国籍信息错误、某位客户的客户名称信息错误等。 数据在底层数据库多数是以二维表格的形式存储&#xff0c;每个数据格存储一个数据值。若想从众多数据中识别出异常数据&#xff0c;就需要通过…

html文件Js写输入框和弹框调接口jQuery

业务场景&#xff1a;需要使用写一个html文件&#xff0c;实现输入数字&#xff0c;保存调接口。 1、使用 JS原生写法&#xff0c; fetchAPI调接口&#xff0c;使用 alert 方法弹框会阻塞线程&#xff0c;所以写了一个弹框。 <!DOCTYPE html> <html lang"en"…

飞书文档如何转markdown

飞书文档如何转markdown 实现效果实现步骤其他方法 实现效果 导出的结果挂在这了 https://thinkasany.github.io/docs/#/ 实现步骤 以https://upyun.feishu.cn/docx/KERsd1DpioPb1xxye9VcuXbhnBC这篇文章为例 使用工具 https://github.com/Wsine/feishu2md&#xff0c;提供了…

汽车制造厂批量使用成华制造弹簧平衡器

数年来&#xff0c;成华制造都在不断的向各行各界输出着自己的起重设备&#xff0c;与众多企业达成合作&#xff0c;不断供应优质产品。近些年&#xff0c;成华制造以其卓越的产品质量和高效的生产能力&#xff0c;成功实现了弹簧平衡器的大规模批量供应&#xff0c;为重庆数家…

python dash call_back 多output 7

效果 代码 # 导入Dash库及其相关组件&#xff0c;用于构建交互式Web应用 from dash import Dash, dcc, html, Input, Output, callback# 定义一个外部样式表&#xff0c;用于美化应用界面 external_stylesheets [https://codepen.io/chriddyp/pen/bWLwgP.css]# 创建一个D…

【Spring实战】13 Security+Thymeleaf自定义登录页面

文章目录 1. 执行流程2. 为什么要自定义登录页面3. 创建登录页面4. 配置 Spring Security5. 创建请求 API6. 启动服务7. 验证8. 代码详细总结 Spring Security 是一个强大的身份验证和访问控制框架&#xff0c;而 Thymeleaf 是一个用于构建动态 Web 页面的强大模板引擎。结合它…

RIS 系列 See-Through-Text Grouping for Referring Image Segmentation 论文阅读笔记

RIS 系列 See-Through-Text Grouping for Referring Image Segmentation 论文阅读笔记 一、Abstract二、引言三、相关工作3.1 Semantic Segmentation and Embeddings3.2 Referring Expression Comprehension3.3 Referring Image Segmentation 四、方法4.1 视觉表示4.2 文本表示…

macos下转换.dmg文件为 .iso .cdr文件的简单方法

为了让镜像文件在mac 和windows平台通用, 所以需要将.dmg格式的镜像文件转换为.iso文件, 转换方法也非常简单, 一行命令即可 hdiutil convert /path/to/example.dmg -format UDTO -o /path/to/example.iso 转换完成后的文件名称默认是 example.iso.cdr 这里直接将.cdr后缀删…

进阶学习——Linux系统服务器硬件认识与RAID磁盘

目录 一、服务器知识补充 1.硬件 2.服务器常见故障 二、认识RAID 1.什么是RAID 2.RAID的优点 3.RAID的实现方式 三、RAID磁盘陈列 1.RAID 0 磁盘陈列介绍——RAID 0 2.RAID 1 磁盘陈列介绍——RAID 1 3.RAID 5 磁盘陈列介绍——RAID 5 4.RAID 6 磁盘陈列介绍——RA…

【Web】vulhub-httpd apache解析漏洞复现(1)

目录 ①CVE-2017-15715 ②apache_parsing_vulnerability ①CVE-2017-15715 贴出源码&#xff1a; <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht]))…