当前位置: 首页 > news >正文

react18基础教程系列-- 框架基础理论知识mvc/jsx/createRoot

react的设计模式

  1. React 是 mvc 体系,vue 是 mvvm 体系
    • mvc: model(数据)-view(视图)-controller(控制器)
      1. 我们需要按照专业的语法去构建 app 页面,react 使用的是 jsx 语法
      2. 构建数据层,需要动态处理的的数据都要数据层支持
      3. 控制层: 当我们需要在视图中进行数据更新时,需要控制层去修改相关数据,然后 react 框架会根据数据的变化去更新视图
        数据驱动视图的渲染 => 单向驱动
        视图中的表单内容改变,想要修改数据,需要开发者自己去写事件监听函数,然后修改数据
    • mvvm: model(数据)-view(视图)-viewModel(视图模型监听层)
      1. 数据驱动视图渲染:监听数据的更新,当数据更新时,视图自动渲染
      2. 视图驱动数据的更新: 监听页面中表单元素的内容改变,自动去修改数据
        双向驱动

jsx 语法

  • jsx: javascript xml,就是把 html 和 javascript 结合起来写
function App() {useEffect(() => {console.log(process.env);// 请求接口fetch("/api/v1/users").then((res) => res.json()).then((res) => console.log(res));}, []);/*** 直接显示的静态组件*/const oBox = <h2>这是一个标题</h2>;/*** 需要传参的组件*/const oBox2 = function (title) {return <h2>这是一个标题,{title}</h2>;};return (<div className="App"><h1>Hello World</h1>{oBox}{oBox2("Hello jsx")}<p>当前的环境是:{process.env.NODE_ENV}</p><p>当前的环境是:{process.env.REACT_APP_API_URL}</p></div>);
}

在这里插入图片描述

{}支持 js 表达式,包括函数调用,变量引用,三目运算,逻辑运算等
不包括语句,如 iffor,while

  • ReactDOM.createRoot(document.getElementById("root")).render(<App />)不能把 body,html 作为根节点渲染,需要我们自己创建 div 作为根节点
  • 组件名必须大写,否则会报错
  • 一个组件中只能有一个根节点,如果有多个根节点,需要使用 fragment 包裹,或者使用 div 包裹,<></>也是 fragment 的语法糖

在jsx中写入不同的数据的展示
在这里插入图片描述

function App() {useEffect(() => {console.log(process.env);// 请求接口fetch("/api/v1/users").then((res) => res.json()).then((res) => console.log(res));}, []);const oBox = <h2>这是一个标题</h2>;const oBox2 = function (title) {return <h2>这是一个标题,{title}</h2>;};return (<div className="App"><h1>Hello World</h1>{oBox}{oBox2("Hello jsx")}{/* 支持字符串 */}{"hello react"}{/* 支持数组 */}<p>{[1, 2, 3, 4, 5]}</p>{/* 支持表达式 */}{1 + 3}{null}{undefined}{/* 不支持 object*/}<p>{{ name: "zs", age: 25 }}</p><p>当前的环境是:{process.env.NODE_ENV}</p><p>当前的环境是:{process.env.REACT_APP_API_URL}</p></div>);
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

react18基础教程系列-- 框架基础理论知识mvc/jsx/createRoot

react的设计模式 React 是 mvc 体系&#xff0c;vue 是 mvvm 体系 mvc: model(数据)-view(视图)-controller(控制器) 我们需要按照专业的语法去构建 app 页面&#xff0c;react 使用的是 jsx 语法构建数据层&#xff0c;需要动态处理的的数据都要数据层支持控制层: 当我们需要…...

牛客周赛 Round 60 折返跑(组合数学)

题目链接&#xff1a;题目 大意&#xff1a; 在 1 1 1到 n n n之间往返跑m趟&#xff0c;推 m − 1 m-1 m−1次杆子&#xff0c;每次都向中间推&#xff0c;不能推零次&#xff0c;问有多少种推法&#xff08;mod 1e97&#xff09;。 思路&#xff1a; 一个高中学过的组合数…...

深入浅出Java匿名内部类:用法详解与实例演示

匿名内部类&#xff08;Anonymous Inner Class&#xff09;在Java中是一种非常有用的特性&#xff0c;它允许你在一个类的定义中直接创建并实例化一个内部类&#xff0c;而不需要为这个内部类指定一个名字。匿名内部类通常用于以下几种情况&#xff1a; 实现接口&#xff1a;当…...

数据库MySQL、Mariadb、PostgreSQL、MangoDB、Memcached和Redis详细介绍

以下是一些常见的后端开发数据库选型&#xff1a; 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a;关系型数据库是最常见的数据库类型&#xff0c;使用表格和关系模型来存储和管理数据。常见的关系型数据库包括MySQL、PostgreSQL和Oracle等。这些数据库适合处理结构化数…...

【ArcGIS Pro实操第七期】栅格数据合并、裁剪及统计:以全球不透水面积为例

【ArcGIS Pro实操第七期】批量裁剪&#xff1a;以全球不透水面积为例 准备&#xff1a;数据下载ArcGIS Pro批量裁剪数据集1 数据拼接2 数据裁剪3 数据统计&#xff1a;各栅格取值3.1 栅格计算器-精确提取-栅格数据特定值3.2 数据统计 4 不透水面积变化分析 参考 准备&#xff1…...

【Linux】Image、zImage与uImage的区别

1、Image 1.1 什么是 Image Image 是一种未压缩的 Linux 内核镜像文件&#xff0c;包含了内核的所有代码、数据和必要的元信息。它是 Linux 内核在编译过程中生成的一个原始的二进制文件&#xff0c;未经过任何压缩或额外的封装处理。由于未压缩&#xff0c;Image 文件相对较…...

算子加速(3):自定义cuda扩展

需要自定义某个层,或有时候用c++实现你的操作(c++扩展)可能会更好: 例如:需要实现一个新型的激活函数例如: bevfusion用cuda实现bevpool加速自定义扩展的步骤 (1) 首先用纯pytorch和python 实现我们所需的功能,看看效果再决定要不要进一步优化(2) 明确优化方向,用C++ (或CU…...

信息安全数学基础(14)欧拉函数

前言 在信息安全数学基础中&#xff0c;欧拉函数&#xff08;Eulers Totient Function&#xff09;是一个非常重要的概念&#xff0c;它与模运算、剩余类、简化剩余系以及密码学中的许多应用紧密相关。欧拉函数用符号 φ(n) 表示&#xff0c;其中 n 是一个正整数。 一、定义 欧…...

7-17 汉诺塔的非递归实现

输入样例: 3输出样例: a -> c a -> b c -> b a -> c b -> a b -> c a -> c 分析&#xff1a; 不会汉罗塔的uu们&#xff0c;先看看图解&#xff1a; 非递归代码&#xff1a; #include<iostream> #include<stack> using namespace std; s…...

word文档无损原样转pdf在windows平台使用python调用win32com使用pip安装pywin32

前提&#xff1a; windows环境下&#xff0c;并且安装了office套装&#xff0c;比如word,如果需要调用excel.也需要安装。在另外的文章会介绍。这种是直接调用word的。所以还原度会比较高。 需求&#xff1a; word文档转pdf,要求使用命令行形式&#xff0c;最终发布为api接口…...

海康威视相机在QTcreate上的使用教程

文章目录 前言&#xff1a;基础夯实&#xff1a;效果展示&#xff1a;图片展示&#xff1a;视频展示&#xff1a; 参考的资料&#xff1a;遇到问题&#xff1a;问题1&#xff1a;int64 does not问题2&#xff1a;LNK2019配置思路(这个很重要)配置关键图片&#xff1a;配置具体过…...

进程状态、进程创建和进程分类

文章目录 进程进程常见的状态进程调度进程状态变化关系 进程标识示例--进程标识的使用以及简介 进程创建fork函数vfork函数示例--使用fork函数创建子进程&#xff0c;并了解进程之间的关系 创建进程时发生的变化虚拟内存空间的变化示例--验证fork函数创建进程时的操作 对文件IO…...

java后端请求调用三方接口

java后端请求调用三方接口 /*** param serverURL http接口地址&#xff08;例&#xff1a;http://www.iwsu.top:8016/dataSyn/bay/statsCar&#xff09;* param parm 参数&#xff08;可以是json&#xff0c;也可以是json数组&#xff09;*/ public void doRestfulPostBody(St…...

C#使用TCP-S7协议读写西门子PLC(三)

接上篇 C#使用TCP-S7协议读写西门子PLC(二)-CSDN博客 这里我们进行封装读写西门子PLC的S7协议命令以及连接西门子PLC并两次握手 新建部分类文件SiemensS7ProtocolUtil.ReadWrite.cs 主要方法&#xff1a; 连接西门子PLC并发送两次握手。两次握手成功后&#xff0c;才真正连…...

铝型材及其常用紧固件、连接件介绍

铝型材介绍&#xff08;包括紧固件和连接件以及走线&#xff09; 铝型材 铝型材一般是6063铝合金挤压成型&#xff0c;分为欧标和国标两个标准。&#xff08;左边国标&#xff0c;右边欧标&#xff0c;欧标槽宽一点&#xff09; 由于槽型不一样&#xff0c;相关的螺栓和螺母也…...

【裸机装机系列】7.kali(ubuntu)-安装开发所需工具

如果你是后端或是人工智能AI岗&#xff0c;可以安装以下推荐的软件&#xff1a; 1> sublime sublime官网 下载deb文件 安装命令 sudo dpkg -i sublime-text_build-4143_amd64.deb2> vscode 安装前置软件 sudo apt install curl gpg software-properties-common apt-t…...

[C语言]第九节 函数一基础知识到高级技巧的全景探索

目录 9.1 函数的概念 9.2 库函数 9.2.1 标准库与库函数 示例&#xff1a;常见库函数 9.2.2 标准库与头文件的关系 参考资料和学习工具 如何使用库函数 ​编辑 9.3 ⾃定义函数 9.3.1 函数的语法形式 9.3.2函数的举例 9.4 实参与形参 9.4.1 什么是实参&#xff1f; 9…...

1.1 计算机网络基本概述

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言一、网络的基本概念二、集线器、交换机和路由器三、互连网与互联网四、网络的类型五、互连网的组成1. 边缘部分2. 核心部分 六、网络协议 前言 计算机网络是现代信息社会…...

Linux环境基础开发工具使用(gcc/g++与makefile)

1.Linux编译器-gcc/g使用 1. 背景知识 接下来的操作&#xff0c;我以gcc为例&#xff0c;因为两者选项都是通用的&#xff0c;所以也就相当于间接学习了 1.预处理&#xff08;进行宏替换) 2.编译&#xff08;生成汇编) 3.汇编&#xff08;生成机器可识别代码&#xff09;…...

PointNet++改进策略 :模块改进 | EdgeConv | DGCNN, 动态图卷积在3d任务上应用

目录 介绍核心思想及其实现核心思想实现步骤 如何改进PointNet**局部几何结构的处理****动态图的引入****特征聚合的灵活性****全局和局部特征的结合** 论文题目&#xff1a;Dynamic Graph CNN for Learning on Point Clouds发布期刊&#xff1a;TOG作者单位&#xff1a;麻省理…...

Wan2.2-I2V-A14B开源大模型:支持ONNX导出与边缘设备轻量化部署

Wan2.2-I2V-A14B开源大模型&#xff1a;支持ONNX导出与边缘设备轻量化部署 1. 开箱即用的文生视频解决方案 Wan2.2-I2V-A14B是一款强大的文生视频开源大模型&#xff0c;能够将文本描述直接转化为高质量视频内容。这个专为RTX 4090D 24GB显卡优化的私有部署镜像&#xff0c;让…...

CLIP-GmP-ViT-L-14入门指南:理解ImageNet/ObjectNet双基准评估意义

CLIP-GmP-ViT-L-14入门指南&#xff1a;理解ImageNet/ObjectNet双基准评估意义 1. 什么是CLIP-GmP-ViT-L-14 CLIP-GmP-ViT-L-14是一个经过几何参数化&#xff08;GmP&#xff09;微调的CLIP模型&#xff0c;在计算机视觉领域具有出色的表现。这个模型最大的特点是它在ImageNe…...

PyTorch 2.6 镜像使用教程:开箱即用,快速开启你的AI之旅

PyTorch 2.6 镜像使用教程&#xff1a;开箱即用&#xff0c;快速开启你的AI之旅 1. 为什么选择PyTorch 2.6镜像 PyTorch作为当前最流行的深度学习框架之一&#xff0c;其2.6版本带来了多项性能优化和新特性。但对于初学者来说&#xff0c;环境配置往往是最头疼的问题——CUDA…...

避开时区陷阱:React Spectrum日期时间处理完全指南

避开时区陷阱&#xff1a;React Spectrum日期时间处理完全指南 【免费下载链接】react-spectrum A collection of libraries and tools that help you build adaptive, accessible, and robust user experiences. 项目地址: https://gitcode.com/GitHub_Trending/re/react-sp…...

Zynq PS端I2C避坑指南:为什么你的读操作总是失败?

Zynq PS端I2C读操作失败排查手册&#xff1a;从时序分析到实战修复 在嵌入式系统开发中&#xff0c;I2C总线因其简单性和多设备支持能力而广受欢迎。然而&#xff0c;当我们在Zynq SoC的PS端实现I2C通信时&#xff0c;特别是进行读操作时&#xff0c;经常会遇到各种意料之外的失…...

H5游戏整合平台源码:70款游戏一键搭建,支持流量主变现的完整解决方案

一、平台概述与核心优势这套H5游戏整合平台源码是一套全面、实用且零门槛的一站式解决方案。它专为站长、开发者、创业团队及游戏爱好者打造&#xff0c;无需分散搜罗各类零散源码&#xff0c;一次获取即可拥有70余款经典H5网页小游戏。所有源码均基于原生H5技术开发&#xff0…...

在CentOS 7上用Tesla V100跑Z-Image-Turbo GGUF模型,实测显存占用和出图速度

在CentOS 7上用Tesla V100跑Z-Image-Turbo GGUF模型的性能实测与调优指南 当高性能计算遇上AI绘画&#xff0c;Tesla V100这样的专业显卡究竟能带来怎样的效率提升&#xff1f;本文将带您深入探索在CentOS 7服务器环境下&#xff0c;使用Tesla V100-32G显卡运行Z-Image-Turbo G…...

别再只用TF-IDF了!揭秘TextRank与BERT结合的关键词提取新玩法(附Colab实操)

超越TF-IDF&#xff1a;TextRank与BERT融合的关键词提取实战指南 在信息爆炸的时代&#xff0c;快速准确地从海量文本中提取核心关键词已成为NLP工程师的必备技能。传统方法如TF-IDF虽然简单高效&#xff0c;但面对社交媒体短文本、学术论文摘要等复杂场景时&#xff0c;往往力…...

一篇顶一万篇,很难找到代码这么全的高分文章,WGS、RNA-seq、scRNA-seq、免疫肽组质谱联合分析

&#x1f680;科研不掉发&#xff0c;快来这个地表最强的生信神仙网站&#xff1a;中国银河生信云平台&#x1f449; 立即访问&#xff1a;https://usegalaxy.cn结直肠癌免疫治疗中&#xff0c;多数新抗原筛选仅聚焦编码区&#xff0c;大量潜在靶点被忽略&#xff0c;非编码区能…...

AI 术语通俗词典:矩阵乘法

矩阵乘法是线性代数、数据分析、机器学习和人工智能中非常核心的一个术语。它用来描述两组二维数值结构之间的一种特定运算规则。这个运算结果仍然是一个矩阵&#xff0c;但它并不是简单地把对应位置的元素相乘&#xff0c;而是通过“行与列”的组合来生成新的数值。如果说矩阵…...