您的位置:首页 > 文旅 > 美景 > 凡科网站建设平台_网页游戏网站bilibili_四川整站优化关键词排名_惠州seo代理计费

凡科网站建设平台_网页游戏网站bilibili_四川整站优化关键词排名_惠州seo代理计费

2025/4/4 4:37:47 来源:https://blog.csdn.net/weixin_42067536/article/details/146505031  浏览:    关键词:凡科网站建设平台_网页游戏网站bilibili_四川整站优化关键词排名_惠州seo代理计费
凡科网站建设平台_网页游戏网站bilibili_四川整站优化关键词排名_惠州seo代理计费

文章目录

  • 项目地址
  • 一、前端获取后端Api
    • 1.1 读取Campany列表
      • 1. 创建统一后端接口
      • 2. 封装axios请求
      • 3. 创建接口文档
      • 4. 前端读取数据
    • 1.2 添加Company
      • 1. 添加CreateCompany的interface
      • 2. 添加页面


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、前端获取后端Api

1.1 读取Campany列表

1. 创建统一后端接口

📂 src
┣ 📂 constants
┃ ┗ 📄 url.constants.ts

  • src里创建constants文件夹,添加url.constans.ts用来存放baseUrl
export const baseUrl = "https://localhost:7129/api";

2. 封装axios请求

  • 封装了 Axios HTTP 客户端,用于简化 API 请求,并且可以统一设置基础 URL、超时时间、请求头等配置
    http.module.ts
import axios from "axios";
import { baseUrl } from "../constants/url.constants";const httpModule = axios.create({baseURL: baseUrl,timeout: 5000, // 5秒超时headers: { "Content-Type": "application/json" }
});export default httpModule;

3. 创建接口文档

📂 src
┣ 📂 types
┃ ┣ 📄 company.types.ts
┃ ┣ 📄 job.types.ts
┃ ┗ 📄 index.ts

  1. company.types.ts 用来处理company页面相关的接口
export interface ICompany {id: string;name: string;size: string;createdAt: string;
}export interface ICreateCompanyDto {name: string;size: string;
}

4. 前端读取数据

  • 使用useEffect读取后端数据

const Companies = () => {const [companies, setCompanies] = useState<ICompany[]>([]);const [loading, setLoading] = useState<boolean>(false);const redirect = useNavigate();useEffect(() => {setLoading(true);httpModule.get<ICompany[]>("/Company/Get").then((response) => {setCompanies(response.data);setLoading(false);}).catch((error) => {alert("Error");console.log(error);setLoading(false);});}, []);//    console.log(companies);return (<div className="content comapnies"><div className="heading"><h2>Companies</h2><Button variant="outlined" onClick={() => redirect("/companies/add")}><Add /></Button></div>{loading ? (<CircularProgress size={100} />) : companies.length === 0 ? (<h1>No Company</h1>) : (<CompaniesGrid data={companies} />)}</div>);
};export default Companies;

1.2 添加Company

1. 添加CreateCompany的interface

  • 创建company的interfrace
export interface ICreateCompanyDto {name: string;size: string;
}

2. 添加页面

  1. 设置表单存储的state
   const [company, setCompany] = useState<ICreateCompanyDto>({ name: "", size: "" });
  1. 获取表单数据

在这里插入图片描述
3. 将表单数据提交

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com