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

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

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

相关文章:

  • 国微FPGA培训
  • 云计算:常用系统前端与后端框架
  • 岛屿的数量
  • 【【萌新的SOC学习之AXI接口简介】】
  • thinkphp6 - 超详细使用阿里云短信服务发送验证码功能,TP框架调用对接阿里云短信发验证码(详细示例代码,一键复制开箱即用)
  • 第二证券:汽车产业链股活跃,恒勃股份、博俊科技“20cm”涨停
  • BS EN 12104-2023 软木地砖检测
  • Flutter环境搭建及新建项目
  • 【Git笔记】之Git重命名详解
  • 【OSPF宣告——network命令与多区域配置实验案例】
  • 【Qt】三种方式实现抽奖小游戏
  • unity操作_Camera c#
  • fastadmin框架如何开启事务
  • GO 中的指针?
  • 【AI视野·今日Robot 机器人论文速览 第四十九期】Fri, 6 Oct 2023
  • 前端uniapp如何修改下拉框uni-data-select下面的uni-icons插件自带的图片【修改uniapp自带源码图片/图标】
  • Dremio:新一代数据湖仓引擎
  • 制作电商页面(Html)
  • 03黑马店评-添加商户缓存和商户类型的缓存到Redis
  • pymoo包NSGA2算法实现多目标遗传算法调参详细说明
  • 印度最新发声:对所有敌对行动均予以反击和回应,不会升级冲突
  • 昆明一学校门外小吃摊占满人行道,城管:会在重点时段加强巡查处置
  • 国家统计局:4月份居民消费价格同比下降0.1%
  • 工程院院士葛世荣获聘任为江西理工大学校长
  • 上海证监局规范辖区私募经营运作,6月15日前完成自评自纠
  • 2025中国南昌国际龙舟赛5月23日启幕,是历年来南昌举办的最高规格龙舟赛事