React基础知识(一) - React初体验

  • React是在2013年, 由Faceboo开源的,用于构建用户界面的 JavaScript 库。
  • 总所周知啊,React是前端三大框架之一啊
  • 现在前端领域最为流行的是三大框架:
    • React
    • Vue
    • Angular
前端三大框架

React开发的特点:

(1)声明式编程
  • 声明式编程是目前整个大前端开发的模式,目前Vue、React、Flutter、SwiftUI等都是用这种编程范式来开发。
  • 用React开发呢,我们只需要维护自己的状态,当状态改变时,React会根据最新的状态去重新渲染我们的UI界面
(2)组件化开发
  • 用组件化开发的方式去开发页面已经是目前前端的流行趋势,我们只需要把一个复杂的页面划分为一个个小的简单的组件就可以了。
(3)多平台适配
  • 2013年,React发布之初主要是开发Web页面
  • 2015年,Facebook推出了ReactNative,用于开发移动端跨平台
  • 2017年,Facebook推出ReactVR,用于开发虚拟现实Web应用程


    image.png
React初体验
  • 在React开发之前呢,我们需要引入React的相关依赖
  • 开发React必须依赖三个库
  1. react:包含React所必须的核心代码
  2. react-dom:React渲染在不同平台所需要的核心代码
  3. babel:将jsx代码转换成React代码的工具
  • 如何添加这三个依赖:
    方式一:直接CDN引入
    方式二:下载后,添加本地依赖
    方式三:通过npm管理(脚手架)

  • 我选择了本地引入的方式


    react依赖文件
  <script src="../react/react.development.js"></script>
  <script src="../react/react-dom.development.js"></script>
  <script src="../react/babel.min.js"></script>
Hello World
  <div>Header</div>
  <div id="app"></div>
  <div>Footer</div>

  <!-- 添加React的相关依赖 -->
  <script src="../react/react.development.js"></script>
  <script src="../react/react-dom.development.js"></script>
  <script src="../react/babel.min.js"></script>

  <script type="text/babel">
    // jsx代码:
    let message = 'Hello World';
    ReactDOM.render(<h2>{message}</h2>, document.getElementById('app'));
  </script>

结果为:


result

注意点:
1.使用jsx, 并且希望script中的jsx代码被解析,必须在script标签中添加一个type属性, 作用是可以让babel解析jsx的语法
2.ReactDOM.render函数需要传入两个参数:
参数一: 传递要渲染的内容,这个内容可以是HTML的元素,也可以是React的组件
参数二: 将渲染的内容,挂载到哪一个HTML元素上

jsx.png

3.render函数被执行后会将渲染的内容放入到id为app的元素中,若该元素中有别的内容,则会将内容清空后再渲染上去
4.在h2标签的里面放入一个大括号{},{}是jsx的一个语法,{}语法可以引入外部的变量或者表达式,以后的文章我会再次解释

Hello React 组件化实现
  • 知道了基本用法之后我们尝试一下用组件化的方式来实现刚刚的内容
  <div id="app"></div>

  <!-- 引入React的依赖 -->
  <script src="../react/react.development.js"></script>
  <script src="../react/react-dom.development.js"></script>
  <script src="../react/babel.min.js"></script>

  <script type="text/babel">
    // 封装App组件
    class App extends React.Component {
      constructor() {
        super();
        this.state = {
          message: 'Hello World'
        }
      }
      render() {
        return (
          <div>
            <h2>{this.state.message}</h2>
          </div>
        );
      }
    }

    ReactDOM.render(<App/>, document.getElementById('app'));
  </script>

结果为:


result.png
  • 现在的代码暂时作为React的初体验而已,后面会有文章来解释这些语法
  • 先动手试试吧,写你的第一份react代码,加油!


喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

编程考古-计算机发展(上)

计算机/器现在是我们日常生活中的重要工具&#xff0c;它的发展历程见证了人类数学计算能力的不断提升。 什么是计算 计算的本质在于基于规则对符号串进行变换。简言之&#xff0c;从一个初始的符号串&#xff08;输入&#xff09;出发&#xff0c;依据既定的法则逐步改变这个…

NewStarCTF2024-Week2-Misc-WP

目录 1、wireshark_checkin 2、wireshark_secret 3、字里行间的秘密 4、你也玩原神吗 5、Hertas Study 6、用溯流仪见证伏特台风 7、热心助人的小明 1、wireshark_checkin 直接字符串搜 flag flag{ez_traffic_analyze_isnt_it} 2、wireshark_secret 查看原始数据 导出十…

STM32应用详解(2)GPIO之LED闪烁——学习使用寄存器操作方法编写延时函数

文章目录 前言一、笔记1.GPIO控制LED闪烁的两种方法&#xff1a;2.系统时钟3.延时函数的实现(us) 二、代码1.main函数2.延时函数3.固件库函数4.毫秒和秒延时函数5.整体函数结构 前言 学习使用寄存器操作方法编写延时函数。 一、笔记 1.GPIO控制LED闪烁的两种方法&#xff1a;…

C语言小游戏--猜数字

游戏过程&#xff1a; 由电脑随机在某个范围内生成一个数字&#xff0c;玩家猜数字并且输入&#xff0c;电脑判断是否正确&#xff0c;正确则游戏结束&#xff0c;错误则给出提示&#xff0c;直到玩家所给的答案正确为止 思路分析&#xff1a; 1.生成随机数 2.玩家可以多次…

springboot037基于SpringBoot的墙绘产品展示交易平台的设计与实现(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;墙绘产品展示交易平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本墙绘产品展示…

Golang | Leetcode Golang题解之第479题最大回文数乘积

题目&#xff1a; 题解&#xff1a; func largestPalindrome(n int) int {if n 1 {return 9}upper : int(math.Pow10(n)) - 1for left : upper; ; left-- { // 枚举回文数的左半部分p : leftfor x : left; x > 0; x / 10 {p p*10 x%10 // 翻转左半部分到其自身末尾&…

CMOS 图像传感器:像素寻址与信号处理

CMOS image sensor : pixel addressing and signal processing CMOS image sensor 对于寻址和信号处理有三种架构 pixel serial readout and processingcolumn parallel readout and processingpixel parallel readout and processing 其中&#xff0c;column parallel reado…

香港举办AIHCIR 2024国际学术会议,领先人工智能、人机交互和机器人技术

第三届人工智能、人机交互和机器人国际学术会议 &#xff08;AIHCIR 2024&#xff09;将于2024年11月在中国香港举行&#xff0c;聚焦AI、人机交互与机器人领域&#xff0c;邀请知名学者演讲&#xff0c;促进学术交流。论文经评审后提交EI检索&#xff0c;投稿需全英文&#xf…

《宗喀大慈宏觉寺——唐蕃古道上的千年古刹》新书发布会在京举行

10月18日&#xff0c;《宗喀大慈宏觉寺——唐蕃古道上的千年古刹》新书发布会在中国藏学研究中心举行 发布会现场 2024年10月18日上午&#xff0c;由中国藏学研究中心科研业务办公室主办、中国藏学出版社承办的《宗喀大慈宏觉寺——唐蕃古道上的千年古刹》新书发布会在中国藏学…

【算法】哈希表:49.字母异位词分组

目录 1、题目链接 2、题目介绍 3、解法 初始化设定--图解 步骤图解 4、代码 1、题目链接 49. 字母异位词分组 - 力扣&#xff08;LeetCode&#xff09; 2、题目介绍 3、解法 字母异位词的本质是字符相同但排列不同。因此&#xff0c;我们可以对字符串进行排序&#xf…

Lucas带你手撕机器学习——线性回归

什么是线性回归 线性回归是机器学习中的基础算法之一&#xff0c;用于预测一个连续的输出值。它假设输入特征与输出值之间的关系是线性关系&#xff0c;即目标变量是输入变量的线性组合。我们可以从代码实现的角度来学习线性回归&#xff0c;包括如何使用 Python 进行简单的线…

Thread的基本用法

创建线程 方法一 继承Thread类 继承 Thread 来创建一个线程类. class MyThread extends Thread {Overridepublic void run() {System.out.println("这里是线程运行的代码");} } 创建 MyThread 类的实例 MyThread t new MyThread(); 调用 start 方法启动线程 t…

《深空彼岸》TXT完整版下载,知轩藏书校对版!

【内容简介】&#xff1a;   浩瀚的宇宙中&#xff0c;一片星系的生灭&#xff0c;也不过是刹那的斑驳流光。仰望星空&#xff0c;总有种结局已注定的伤感&#xff0c;千百年后你我在哪里&#xff1f;家国&#xff0c;文明火光&#xff0c;地球&#xff0c;都不过是深空中的一…

2024 年 9 月区块链游戏研报:行业回暖,Telegram 游戏引发热潮

作者&#xff1a;Stella L (stellafootprint.network) 数据来源&#xff1a;Footprint Analytics Games Research Page 9 月份&#xff0c;区块链游戏代币的市场总值增长了 29.2%&#xff0c;达到 232 亿美元&#xff0c;日活跃用户&#xff08;DAU&#xff09;数量上升了 1…

C++进阶:AVL树实现

目录 一.AVL的概念 二.AVL的实现 2.1AVL树的结构 2.2AVL树的插入 2.2.1AVL树插入一个值的大概过程 2.2.2平衡因子更新 2.2.3插入节点及更新平衡因子的实现 2.3旋转 2.3.1旋转的原则 2.3.2右单旋 2.3.3右单旋的代码实现 2.3.4左单旋 2.3.5左单旋的代码实现 2.3.6…

腾讯云宝塔面板前后端项目发版

后端发版 1. 打开“网站”页面&#xff0c;找到java项目&#xff0c;点击状态暂停服务 2.打开“文件”页面&#xff0c;进入jar包目录&#xff0c;删除原有的jar包&#xff0c;上传新jar包 3. 再回到第一步中的网站页面&#xff0c;找到jar项目&#xff0c;启动项目即可 前端发…

项目一:3-8译码器的设计与实现(FPGA)

本文以Altera公司生产的Cyclone IV系列的EP4CE15F17C8为主芯片的CRD500开发板作为项目的硬件实现平台&#xff0c;并以Quarter 18.1和ModelSim为开发工具和仿真工具。 目录 一、3-8译码器工作原理 二、设计步骤 1、创建工程文件夹和编辑设计文件 &#xff08;1&#xff09;…

微信小程序上传组件封装uploadHelper2.0使用整理

一、uploadHelper2.0使用步骤说明 uploadHelper.js ---上传代码封装库 cos-wx-sdk-v5.min.js---腾讯云&#xff0c;对象存储封装库 第一步&#xff0c;下载组件代码&#xff0c;放置到自己的小程序项目中 第二步、 创建上传对象&#xff0c;执行选择图片/视频 var _this th…

【成长day】SuperPointSuperGlue(02): Superglue论文算法学习与对应源码解析

论文工作地址&#xff1a;https://psarlin.com/superglue/ 论文地址&#xff1a;https://arxiv.org/abs/1911.11763 讲解PPT&#xff1a;https://psarlin.com/superglue/doc/superglue_slides.pdf 论文源码&#xff1a;https://github.com/magicleap/SuperGluePretrainedNetwor…

WebRTC音频 03 - 实时通信框架

WebRTC音频01 - 设备管理 WebRTC音频 02 - Windows平台设备管理 WebRTC音频 03 - 实时通信框架(本文) WebRTC音频 04 - 关键类 WebRTC音频 05 - 音频采集编码 一、前言&#xff1a; 前面介绍了音频设备管理&#xff0c;并且以windows平台为例子&#xff0c;介绍了ADM相关的类…