Typescript 综合笔记:解读一个github中的React 网页

news2024/10/5 12:52:28

1 repository来源和效果

zhitern/ntu-scse22-0163-web (github.com)

2 核心代码异同(相比于初始创建的代码)

2.1 index.html

和初始创建的是一样的

2.2 App.css

和初始创建的是一样的

2.3 index.tsx

  • 唯一”不一样“的是紫色部分,tsx文件中多了一个类型断言as HTMLElement,这是 TypeScript 语法,用于明确 document.getElementById('root') 返回的值的类型
    • 他们实际的功能一样
  • 所以这两部分功能完全一样

2.4 package.json

左为初始创建的,右为这个程序的,可以看到多了一些依赖的包

2.5 App.tsx

【注:HTML里面的那些注释需要删去】

import React from 'react';
//导入 React 库,它是构建组件所必需的
import {
  BrowserRouter,
  Routes,
  Route,
} from "react-router-dom";
//导入 react-router-dom 库的几个关键组件。
//BrowserRouter 是路由的容器,而 Routes 和 Route 用于定义路由规则。
import logo from './image/logo.png'
//导入 logo 图像,以便在组件中使用。【和App.js一样】

import MainPage from "./pages/MainPage"
import DeepRegionRepresentationPage from './pages/DeepRegionRepresentationPage';
import RegionSearchPage from './pages/RegionSearchPage';
import TempoTestPage from './pages/TempoTestPage';
import TopicExplorePage from './pages/TopicExplorePage';
//导入几个页面组件,它们分别代表应用中的不同视图或页面。

import Navbar from './Components/Navbar';
//导入 Navbar 组件,用于显示导航链接。


import 'bootstrap/dist/css/bootstrap.min.css';
//导入 Bootstrap 的 CSS 文件。Bootstrap 是一个流行的前端框架,它提供了多种样式和组件。

function App() {
  return <BrowserRouter>
  {/*返回 JSX 元素。这里使用 BrowserRouter 包裹整个应用,它提供了一个路由的上下文。*/}
    <div className="Top" style={{maxHeight:'20vh'}}>
          <img src={logo} className = "logo" alt="logo" />
          <Navbar/>
    </div>
	      {/* 定义一个带有类名 Top 的 div,它包含了应用的 logo 和 Navbar 组件。
                这部分内容总是在页面的顶部显示 */}


    <Routes>
      <Route path="/" element={<MainPage />} />
      <Route path="/TempoTestPage" element={<TempoTestPage />} />
      <Route path="/DeepRegionRepresentationPage" element={<DeepRegionRepresentationPage />} />
      <Route path="/RegionSearchPage" element={<RegionSearchPage />} />
      <Route path="/TopicExplorePage" element={<TopicExplorePage />} />
    </Routes>
	{/*
        使用 Routes 和 Route 组件定义路由规则。
        每个 Route 定义了一个路径(path 属性)和一个关联的组件(element 属性)。
        当访问一个路径时,关联的组件会被渲染
      */}
  </BrowserRouter>
}

export default App;
//导出 App 组件作为默认导出,以便在其他文件中导入。

3 pages 网页Typescript 代码解析

3.1 MainPage.tsx

  • 注:return的部分非常像HTML/CSS,但是实际上是Javascript的语法扩展(JSX,Javascript XML)
    • 它实际上是 JavaScript 的语法扩展,能够让我们以 HTML-like 的语法编写 UI 组件,并且在背后被转换为 JavaScript 代码

3.1.1 Banner

具体看一下Banner

 所以这一部分的效果是:

3.1.2  Algos

  • flex: '1' 意味着该 div 元素将占据可用空间的 1 份。
  • flex: '2' 意味着 img 元素将占据可用空间的 2 份。
  • flex: '3' 意味着 p 元素将占据可用空间的 3 份。

效果如下:

3.1.3 utils/Algos.tsx

3.2 DeepRegionRepresentationPage.tsx

这里为什么响应部分都return了,还有后面的数据部分的处理呢?

 

  • 在这里,.then() 方法用于处理异步操作
  • 当我们在 .then() 方法中返回一个值,这个值会被传递到下一个 .then() 方法,作为输入参数
  • 也就是说,响应部分解析的res.json()就是数据部分的输入data

land use prediction 类似 

3.2.1 Components/Map.tsx

导入需要的库和模块

3.2.2 Components/InputForm.tsx

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

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

相关文章

【力扣2011】执行操作后的变量值

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接&#xff1a;执行操作后的变量值 存在一种仅支持 4 种操作和 1 个变量 …

【计算机网络】UDP协议编写群聊天室----附代码

UDP构建服务器 x 预备知识 认识UDP协议 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 传输层协议无连接不可靠传输面向数据报 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的…

YOLOv7损失函数改进:SlideLoss,解决简单样本和困难样本之间的不平衡问题

💡💡💡本文改进:SlideLoss,解决简单样本和困难样本之间的不平衡问题,并使用有效感受野的信息来设计Anchor。 SlideLoss| 亲测在多个数据集能够实现涨点,对小目标、遮挡物性能提升也能够助力涨点。 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c …

JVM面试题:(二)内存结构和内存溢出、方法区的两种实现

内存结构&#xff1a; 方法区和对是所有线程共享的内存区域&#xff1b;而java栈、本地方法栈和程序员计数器是运行是线程私有 的内存区域。 Java堆&#xff08;Heap&#xff09;,是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内 存区域&#xff0c;在…

软件测试之概念篇(需求,测试用例,BUG描述,产品的生命周期)

目录 1.什么是需求 2.什么是测试用例 3.什么是BUG 4.软件的生命周期 5.测试的生命周期 1.什么是需求 在大多数软件公司&#xff0c;一般会有两部分需求&#xff1a; 用户需求&#xff1a;可以理解为就是甲方提出需求&#xff0c;如果没有甲方&#xff0c;那么就是终端用…

“注释: 爱恨交织的双重标准?解析注释在代码开发中的作用。”

文章目录 每日一句正能量前言观点和故事程序员不写注释的原因是什么如何才能写出漂亮的注释后记 每日一句正能量 水与水之间有距离&#xff0c;但地心下直相牵&#xff0c;人与人之间有距离&#xff0c;但心里时刻挂念&#xff0c;发条短信道声晚安&#xff0c;梦里我们相见。 …

岛屿的数量

题目描述 给你一个由 ‘1’&#xff08;陆地&#xff09;和 ‘0’&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以…

Programming abstractions in C阅读笔记:p176-p178

《Programming Abstractions In C》学习第59天&#xff0c;p176-p178总结。 一、技术总结 1.addtive sequences tn tn-1 tn-2 序列&#xff1a;3, 7, 10, 17, 27, 44, 71, 115, 186, 301, 487, 788, 1275, … p177, As a general class, the sequences that follow this…

面试总结-Redis篇章(十二)——Redis是单线程的,为什么还那么快

Redis是单线程的&#xff0c;为什么还那么快 Redis是单线程的&#xff0c;为什么还那么快什么是IO多路复用 阻塞IO非阻塞IOIO多路复用 Redis是单线程的&#xff0c;为什么还那么快 Redis是纯内存操作&#xff0c;执行速度非常快采用单线程&#xff0c;避免不必要的上下文切换可…

【面试经典150 | 哈希表】单词规律

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;哈希表 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内…

mysql面试题34:Hash索引和B+树区别是什么?在设计索引怎么选择?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Hash索引和B+树区别是什么?在设计索引怎么选择? 在MySQL中,Hash索引和B+树索引是两种常见的索引类型,他们有以下区别: 数据结构:Hash索引:…

999、Android --问题处理-1

1、打开其他人开发的程序报错 Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Faile to apply plugin […] 解决问题&#xff1a; preoject视图下&#xff0c;文件gradle.properties添加语句 android.overridePathChecktrue

Spring Framework中的org.springframework.stereotype包:为你的应用程序定义“典型”

&#x1f96d;导言&#xff1a; Spring Framework是一个强大的开发框架&#xff0c;它大大简化了Java应用程序的开发和管理。org.springframework.stereotype 注解家族是Spring的核心注解之一&#xff0c;它们允许开发人员定义和标识不同类型的组件&#xff0c;以便Spring能够…

Java | 类、实例初始化 、方法重写规则

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 类、实例初始化 、方法重写规则 类的初始化过…

PL2303驱动程序不支持WINDOWS 11及后续版本

到网上下载PL2303的驱动程序, 双击安装这个驱动程序&#xff0c;安装完成后双击这个端口&#xff0c; 这个端口的驱动程序是我们刚才安装的&#xff0c;选中 点击下一步&#xff0c;问题解决。如下图已经没有之前的提示了

NoSQL数据库(林子雨慕课课程)

文章目录 5.1 NoSQL数据库5.2 NoSQL和关系数据库的比较5.3 四大类型NoSQL数据库5.3.1 键值数据库和列族数据库5.3.2 文档数据库、图数据库、以及不同数据库比较分析 5.4 NoSQL数据库的理论基石CAP理论&#xff1a;BASE理论&#xff1a;Eventual consistency&#xff08;最终一致…

Stretched mesh

https://www.particleincell.com/2015/stretched-mesh/

2023年中国光子嫩肤行业市场规模及市场格局分析[图]

随时间推移&#xff0c;光子嫩肤行业朝着功效提升和风险降低的方向发展&#xff0c;所使用的强脉冲光技术不断升级革新。因此&#xff0c;在原有的强脉冲光子嫩肤项目基础上&#xff0c;延伸出完美强脉冲光技术、窄谱强脉冲光技术应用的光子嫩肤细分品类。 光子嫩肤分类 资料来…

绘制一个五角红星图形(Python)

#Five_Star.py from turtle import * #导入turtle库 pensize(10) #设置画笔的宽度 begin_fill() #开始绘画 pencolor(red) #设置画笔颜色 fillcolor(yellow) #设置填充颜色 for i in range(5): #设置一个…

【C++】运算符重载案例 - 字符串类 ② ( 重载 等号 = 运算符 | 重载 数组下标 [] 操作符 | 完整代码示例 )

文章目录 一、重载 等号 运算符1、等号 运算符 与 拷贝构造函数2、重载 等号 运算符 - 右操作数为 String 对象3、不同的右操作数对应的 重载运算符函数 二、重载 下标 [] 运算符三、完整代码示例1、String.h 类头文件2、String.cpp 类实现3、Test.cpp 测试类4、执行结果 一…