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

embedded/2024/10/23 20:21:09/
  • 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代码,加油!


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


http://www.ppmy.cn/embedded/129895.html

相关文章

python图片格式NV12,RGB相互转换。

一 背景 最近需要把图片nv12格式转换为rgb&#xff0c;因为NV12格式存储占空间比较小&#xff0c;采集时候存储NV12格式&#xff0c;现在需要把NV12格式转换为RGB格式。二 代码 1 NV12 转 RGB import os import cv2 import numpy as npdef nv12_to_rgb(nv12_path, save_path,…

【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款智能体的开发

文章目录 前言一、智能体运行效果二、如何制作智能体 前言 在这个日新月异的时代&#xff0c;人工智能技术正如星辰般璀璨&#xff0c;迅速渗透到我们生活的方方面面。&#x1f320; 从智能家庭设备到无人驾驶汽车&#xff0c;从精准医疗诊断到个性化教育辅导&#xff0c;AI正…

英雄联盟也裁员了。。。

大家好&#xff0c;我是鸭鸭&#xff01; 想不到裁员的风刮到了《英雄联盟》。 2009 年&#xff0c;《英雄联盟》上线&#xff0c;直至今天它还活跃在网吧屏幕上。 有多少游戏可以经历 15年&#xff1f;对于《英雄联盟》来说&#xff0c;也许用“传奇”这个词更加合适。但如…

windows mysql 8.0版本重置root密码

1.停止mysql服务 以管理员运行cmd 2.安全模式启动 mysqld --console --skip-grant-tables --shared-memory 3.修改密码 再开个cmd窗口就可以进入了&#xff1a;mysql 先进入mysql database&#xff1a;use mysql 修改密码&#xff1a;ALTER USER rootlocalhost IDENTIFIED …

2011年国赛高教杯数学建模B题交巡警服务平台的设置与调度解题全过程文档及程序

2011年国赛高教杯数学建模 B题 交巡警服务平台的设置与调度 有困难找警察”&#xff0c;是家喻户晓的一句流行语。警察肩负着刑事执法、治安管理、交通管理、服务群众四大职能。为了更有效地贯彻实施这些职能&#xff0c;需要在市区的一些交通要道和重要部位设置交巡警服务平台…

《深度学习》OpenCV EigenFaces算法 人脸识别

目录 一、EigenFaces算法 1、什么是EigenFaces算法 2、原理 3、实现步骤 1&#xff09;数据预处理 2&#xff09;特征提取 3&#xff09;构建模型 4&#xff09;识别 4、优缺点 1&#xff09;优点 2&#xff09;缺点 二、案例实现 1、完整代码 运行结果&#xff…

docker 发布镜像

如果要推广自己的软件&#xff0c;势必要自己制作 image 文件。 1 制作自己的 Docker 容器 基于 centos 镜像构建自己的 centos 镜像&#xff0c;可以在 centos 镜像基础上&#xff0c;安装相关的软件&#xff0c;之后进行构建新的镜像。 1.1 dockerfile 文件编写 首先&…

Android Settings 设置项修改

Settings 设置项 在 Android 系统上,WRITE_SETTINGS 这个权限从 API 1 就已经开始有了。 通过在 app 中设置权限 android.permission.WRITE_SETTINGS 允许 app 读/写 系统设置。 在官方文档的描述中,还有一段注意事项: Note: If the app targets API level 23 or higher,…