【React打卡学习第一天】

news2024/11/27 5:37:37

React入门

  • 一、简介
  • 二、基本使用
    • 1.引入相关js库
    • 2.babel.js的作用
  • 二、创建虚拟DOM
  • 三、JSX(JavaScript XML)
    • 1.本质
    • 2.作用
    • 3.基本语法规则
      • 定义虚拟DOM时,不要写引号。
      • 标签中混入JS表达式时要用{}。
      • 样式的类名指定不要用class,要用className.
      • 内联样式,要用style={{key:value}}的形式去写。
      • 只有一个根标签
      • 标签必须闭合
      • 标签首字母
    • 4.渲染虚拟DOM(元素)
      • ReactDOM.render(virtualDOM, containerDOM)
  • 四、模块与模块化、组件与组件化
    • 1.模块
      • 理解
      • 为什么要拆成模块
    • 2.模块化
    • 3.组件
      • 理解
      • 为什么要用组件
    • 4.组件化

一、简介

React是一个用于构建用户界面的JavaScript库,由Facebook开源。它专注于视图层,允许开发者通过组件化的方式构建界面。React的特点包括声明式编码、组件化编码、能够编写原生应用的React Native,以及高效性,这得益于其优秀的Diffing算法。React高效的原因之一是使用虚拟DOM,减少了直接操作真实DOM的频率。此外,DOM Diffing算法最小化了页面重绘的需要,进一步提高了性能。

更多详情信息请查看官网:https://react.dev/

二、基本使用

1.引入相关js库

react.js:React核心库。
react-dom.js:提供操作DOM的react扩展库。
babel.min.js:解析JSX语法代码转为JS代码的库。
注:一定要先引入react.development.js再引入react-dom.development.js

2.babel.js的作用

1)浏览器不能直接解析JSX代码, 需要babel转译为纯JS的代码才能运行
2)只要用了JSX,都要加上type=“text/babel”, 声明需要babel来处理

二、创建虚拟DOM

我们一般采用jsx方式创建虚拟DOM
在这里插入图片描述
虚拟DOM不是字符串, 也不是HTML/XML标签,它最终产生的就是一个JS对象

三、JSX(JavaScript XML)

react定义的一种类似于XML的JS扩展语法: JS + XML

1.本质

React.createElement(component, props, …children)方法的语法糖

2.作用

用来简化创建虚拟DOM

3.基本语法规则

定义虚拟DOM时,不要写引号。

标签中混入JS表达式时要用{}。

区分:js语句(代码) 与js表达式

表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方
(1). a
(2). a+b
(3). demo(1)
(4). arr .map()
(5). function test () {}

语句(代码):
(1).if(){}
(2). for(){}
(3). switch(){case : xxxx}

样式的类名指定不要用class,要用className.

内联样式,要用style={{key:value}}的形式去写。

只有一个根标签

标签必须闭合

标签首字母

(1).若小写字母开头,则将改标签转为html中同名元素,若html 中无该标签对应的同名元素,则报错。
(2).若大写字母开头,react就 去渲染对应的组件,若组件没有定义,则报错。

4.渲染虚拟DOM(元素)

ReactDOM.render(virtualDOM, containerDOM)

将虚拟DOM元素渲染到页面中的真实容器DOM中显示
参数说明
1)参数一: 纯js或jsx创建的虚拟dom对象
2)参数二: 用来包含虚拟DOM元素的真实dom元素对象(一般是一个div)

四、模块与模块化、组件与组件化

1.模块

理解

向外提供特定功能的js程序, 一般就是一个js文件

为什么要拆成模块

随着业务逻辑增加,代码越来越多且复杂。
复用js, 简化js的编写, 提高js运行效率

2.模块化

当应用的js都以模块来编写的, 这个应用就是一个模块化的应用

3.组件

理解

用来实现局部功能效果的代码和资源的集合(html/css/js/image等等)

为什么要用组件

一个界面的功能更复杂
复用编码, 简化项目编码, 提高运行效率

4.组件化

当应用是以多组件的方式实现, 这个应用就是一个组件化的应用

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

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

相关文章

发现一个巨牛的国产GPT,确定不来体验一下?

ChatGAI 这个网站融合了多种实用功能,包括聊天问答、PPT生成、笔记整理、图文创作和视频生成等,能满足媒体从业者的多元需求。用户无需注册即可体验,界面友好,操作便捷,分享给兄弟们使用。 链接:ChatGAI …

昇思25天学习打卡营第13天|munger85

文本解码原理–以MindNLP为例 重要的就是怎么样把数字最后转化成真正的文字。而且自回归模型它会一个字给一个字的预测,下一个字应该是什么? 如果这个模型下载很慢,你就可以通过这种方式从摩大社区进行下载。 这种方式, 每一次候…

LeetCode 142.环形链表2 C写法

LeetCOde 142.环形链表2 C写法 思路1🤔: ​ 用环形链表的方法,快慢指针找到slow和fast的相遇点,此时头到入口点的位置与相遇点到入口点的距离一样。 ​ 我们假设头到入口点的长度为L,环的长度为C,相遇点到入…

ArgMed-Agents:通过多个智能体论证方案增强大模型,进行可解释的临床决策推理

ArgMed-Agents:通过多个智能体论证方案增强大模型,进行可解释的临床决策推理 提出背景ArgMed-Agents 框架目的解法拆解逻辑链 临床讨论的论证方案(ASCD)论证方案用于决策(ASDM)论证方案用于副作用&#xff…

算法力扣刷题记录 四十八【513.找树左下角的值】

前言 二叉树篇继续。 记录 四十八【513.找树左下角的值】 一、题目阅读 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,nul…

【Datawhale AI夏令营】电力需求预测挑战赛 后续研究方向

时间序列预测是一个不断发展的领域,随着技术的进步,我们可以期待更多的优化方法和模型的出现。 深度学习模型,特别是LSTM和其变体、transformer模型和其变体、大模型,已经在许多时间序列预测任务中显示出了优越的性能。 优化方向…

Linux的相关命令

Linux 1. 什么是Linux系统 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想…

面对人工智能发展的伦理挑战:应对策略与未来方向

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

基于单片机的智能医疗监护系统设计

1.简介 随着社会的发展,智能化电子设备成为了人们生活中不可或缺的一部分,尤其是在人们对于身心健康更加注重的今天,智能医疗监护系统应运而生。本套电子监护设备集体温测量、心电采集、心率监测、血氧监测于一体,带有语音播报模块…

关于java装饰器模式在ai生成举例不可用的问题

定义 首先描述下定义,然后举例说明。 网上定义 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许向对象添加新的功能或职责,同时保持对象类的原始结构。这种模式提供了一种替代继承的机制来扩展功能&…

redis原理之底层数据结构(二)-压缩列表

1.绪论 压缩列表是redis最底层的结构之一,比如redis中的hash,list在某些场景下使用的都是压缩列表。接下来就让我们看看压缩列表结构究竟是怎样的。 2.ziplist 2.1 ziplist的组成 在低版本中压缩列表是由ziplist实现的,我们来看看他的结构…

【教学类-67-01】20240715毛毛虫AB排序

背景需求 幼儿园数学区 颜色排序 - 小红书毛毛虫颜色排序 直接打印#幼儿园数学https://www.xiaohongshu.com/explore/63362546000000001d026455?app_platformandroid&ignoreEngagetrue&app_version8.44.1&share_from_user_hiddentrue&xsec_sourceapp_share&a…

Jenkins用户权限管理指定操作任务

安装插件 在 Jenkins 的管理插件中进行插件安装。 搜索插件库:Role-based Authorization Strategy 修改授权策略 在全局安全配置中,把授权策略改为Role-Based Strategy 添加角色规则 在安全中选择Manage and Assign Roles 在Global roles中添加一个…

嵌入式人工智能(2-树莓派4B开发板硬件环境搭建)

1.硬件开发环境(T型板) 树莓派4B开发板需要搭配面包板,T型板将40个GPIO口引出,再将T型板插到面包板上面。这个地方需要注意插接的方向,由于插树莓派引脚的排线没有防呆设计,因此,请注意方向&am…

Centos7 安装私有 Gitlab

在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。 sudo yum install -y curl policycoreutils-python openssh-server perl sudo systemct…

免单优选:重塑电商销售新纪元

免单优选作为一种颠覆性的电商销售策略,其核心在于以价格优势为驱动,融合渐进激励与社交网络效应,深度挖掘并激发消费者的购买潜力,引领销售增长的新潮流。 一、合规为基,重塑信任 在免单优选模式中,我们坚…

el-popover或el-popconfirm中button不展示问题

vue3在使用Element-plus 2.X时&#xff0c;出现el-popover或el-popconfirm中button不展示问题。 正常效果&#xff1a; 第一种错误原因&#xff1a;el-button没有添加 slotreference <template slot-scope"scope"><el-popconfirm title"您确定删除吗…

CVE-2024-24549 Apache Tomcat - Denial of Service

https://lists.apache.org/thread/4c50rmomhbbsdgfjsgwlb51xdwfjdcvg Apache Tomcat输入验证错误漏洞&#xff0c;HTTP/2请求的输入验证不正确&#xff0c;会导致拒绝服务&#xff0c;可以借助该漏洞攻击服务器。 https://mvnrepository.com/artifact/org.apache.tomcat.embed/…

【Android】活动之间的穿梭

引入 在活动的初学建立了一个简单的活动&#xff0c;但只有一个活动不是过于简单&#xff0c;在你使用手机的时候按下一个按钮可能会跳转到下一个界面&#xff0c;此时就是活动之间的穿梭&#xff1a;使用Intent在活动之间穿梭 Intent&#xff1a;是android程序中各组件之间进…

【LeetCode力扣】006. Z 字形变换(Python)

最快解法 参考了运行时间最短的代码&#xff0c;其使用的思路就是按列排序后连接。 class Solution:def convert(self, s: str, numRows: int) -> str:if numRows < 2 : # numRows1时候&#xff0c;对应输出为原字符串return sn len(s)lst [ for _ in range(numRows…