• 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里面的那些注释需要删去】

    1. import React from 'react';
    2. //导入 React 库,它是构建组件所必需的
    3. import {
    4. BrowserRouter,
    5. Routes,
    6. Route,
    7. } from "react-router-dom";
    8. //导入 react-router-dom 库的几个关键组件。
    9. //BrowserRouter 是路由的容器,而 Routes 和 Route 用于定义路由规则。
    10. import logo from './image/logo.png'
    11. //导入 logo 图像,以便在组件中使用。【和App.js一样】
    12. import MainPage from "./pages/MainPage"
    13. import DeepRegionRepresentationPage from './pages/DeepRegionRepresentationPage';
    14. import RegionSearchPage from './pages/RegionSearchPage';
    15. import TempoTestPage from './pages/TempoTestPage';
    16. import TopicExplorePage from './pages/TopicExplorePage';
    17. //导入几个页面组件,它们分别代表应用中的不同视图或页面。
    18. import Navbar from './Components/Navbar';
    19. //导入 Navbar 组件,用于显示导航链接。
    20. import 'bootstrap/dist/css/bootstrap.min.css';
    21. //导入 Bootstrap 的 CSS 文件。Bootstrap 是一个流行的前端框架,它提供了多种样式和组件。
    22. function App() {
    23. return <BrowserRouter>
    24. {/*返回 JSX 元素。这里使用 BrowserRouter 包裹整个应用,它提供了一个路由的上下文。*/}
    25. <div className="Top" style={{maxHeight:'20vh'}}>
    26. <img src={logo} className = "logo" alt="logo" />
    27. <Navbar/>
    28. div>
    29. {/* 定义一个带有类名 Top 的 div,它包含了应用的 logo 和 Navbar 组件。
    30. 这部分内容总是在页面的顶部显示 */}
    31. <Routes>
    32. <Route path="/" element={<MainPage />} />
    33. <Route path="/TempoTestPage" element={<TempoTestPage />} />
    34. <Route path="/DeepRegionRepresentationPage" element={<DeepRegionRepresentationPage />} />
    35. <Route path="/RegionSearchPage" element={<RegionSearchPage />} />
    36. <Route path="/TopicExplorePage" element={<TopicExplorePage />} />
    37. Routes>
    38. {/*
    39. 使用 Routes 和 Route 组件定义路由规则。
    40. 每个 Route 定义了一个路径(path 属性)和一个关联的组件(element 属性)。
    41. 当访问一个路径时,关联的组件会被渲染
    42. */}
    43. BrowserRouter>
    44. }
    45. export default App;
    46. //导出 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

  • 相关阅读:
    Rust踩雷笔记(7)——两个链表题例子初识裸指针
    有什么最受欢迎的干葡萄酒选择?
    SpringBoot+Session 实现接口验证(过滤器+拦截器)
    Docker入门学习(笔记1)
    如何在Linux系统安装Nginx
    TCP/IP 网络分层模型
    第十七章 维护本地数据库(二)
    HIVE——安装
    请问图中哪些课程实用些?
    【算法训练-二叉树 一】【二叉树遍历】前序遍历、中序遍历、后续遍历、层序遍历、锯齿形层序遍历、二叉树右视图
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/133708487