TypeScript高级内容

news2024/9/28 1:20:17

完整总结

本节课涵盖了本地开发环境的搭建、前后端的基本交互、以及如何封装 Axios 以增强代码的安全性和可维护性。此外,我们还解决了在代码实现过程中可能遇到的一些常见问题。

1. 本地环境搭建
  • 安装环境依赖:首先需要在本地安装 Node.js(推荐最新稳定版),并全局安装 Vite。通过 Vite 创建 Vue 3 + TypeScript 项目,安装相关依赖后,启动开发服务器进行调试。
  • Vue 单文件组件 (SFC):我们在 src/components/HelloWorld.vue 中看到,Vue 的单文件组件将组件的逻辑、模板和样式封装在一个文件内,便于管理和维护。
2. 使用 Axios 进行网络请求
  • 引入 Axios:在项目中引入 Axios 库,并通过 GET 和 POST 方法与 FastAPI 后端进行通信。示例代码展示了如何在 TypeScript 环境下进行网络请求,并处理返回的数据。
  • FastAPI 后端搭建:使用 Python 3.10.5 及以上版本搭建 FastAPI 后端,配置 CORS 中间件以支持跨域访问,并通过 Uvicorn 运行应用。在启动 FastAPI 后端时需要注意,0.0.0.0 不是一个具体的 IP 地址,访问时需使用 http://127.0.0.1:8009http://localhost:8009
3. 代码问题与解决方案

在实践中,遇到了一些常见的代码问题,包括:

  1. 网络请求无法访问后端:通常这是由于错误的 IP 地址引起的。通过使用本地 IP 地址 (127.0.0.1) 或 localhost 解决该问题。

  2. GET 和 POST 请求的正确配置:在封装 Axios 时,通过 params 参数传递 GET 请求的 URL 参数,确保在请求发出时这些参数能够正确传递给后端。

  3. 前后端交互不成功:检查前端 Axios 请求和后端 FastAPI 路由是否正确匹配,确保请求路径和参数格式一致。

4. 封装 Axios

为了克服 Axios 原生用法中的一些局限性,并更好地支持 TypeScript 的类型检查与语法提示,进行了以下封装工作:

  • 统一处理请求头:在 axios.create 方法中创建 Axios 实例对象,并设置全局的请求和响应拦截器,以确保请求头统一处理。
  • 统一管理接口:在 request 文件夹中添加 api.ts 文件,集中管理所有接口,避免每次请求都重新加载接口文件。
  • 避免回调地狱:通过封装异步请求,结合 async/await 语法,使代码结构更加清晰,避免传统回调方法带来的复杂性。
5. TypeScript 与 Axios 的结合
  • 类型声明:Axios 提供了完整的类型声明,通过泛型参数 TRD,分别定义服务器返回的数据类型、经过 Axios 包装后的响应对象类型,以及请求配置对象的类型。
  • 封装 Axios 实例:通过 axios.create 方法创建实例,设置请求和响应拦截器,处理全局的请求配置与错误响应。
  • 模块化接口管理:将请求接口根据业务模块划分到不同的文件中(如 user/api.ts),并在组件中调用这些封装好的接口,实现代码的高内聚与低耦合。
6. 前端与后端的交互
  • 示例实现:在 Vue 组件中,通过按钮点击触发 Axios 请求,使用封装后的接口函数发送请求,并在控制台输出服务器返回的数据。通过 GET 请求从 FastAPI 后端获取数据,或通过 POST 请求发送数据到后端。

结论

通过本节课的学习,不仅学会了如何在本地搭建 Vue 3 + TypeScript 的开发环境,还掌握了与 FastAPI 后端的交互方式。更重要的是,了解了如何通过封装 Axios 来优化代码结构,使其更加安全、简洁且易于维护。在解决代码问题的过程中,学会了如何排查和处理常见的前后端交互问题,使得开发过程更加顺畅。

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

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

相关文章

Java并发:互斥锁,读写锁,公平锁,Condition,StampedLock

阅读本文之前可以看一看 Java 多线程基础: Java:多线程(进程线程,线程状态,创建线程,线程操作) Java:多线程(同步死锁,锁&原子变量,线程通信&…

《Linux从小白到高手》理论篇(二):Linux的目录结构和磁盘管理

List item 本篇主要介绍Linux的目录结构和磁盘管理相关的命令。 Linux目录结构 在Linux的世界里,一切皆文件,连目录也不例外。linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”(相当于windows下的&…

【VUE】案例:商场会员管理系统

编写vuedfr实现对会员进行基本增删改查 1. drf项目初始化 请求: POST http://127/0.0.0.1:8000/api/auth/ {"username":"cqn", "password":"123"}返回: {"username":"cqn", "token&q…

开源 AI 智能名片 O2O 商城小程序与抖音:品牌传播的新机遇与挑战

摘要:本文探讨了开源 AI 智能名片 O2O 商城小程序在品牌传播中的作用,以及与抖音平台相结合所带来的机遇与挑战。分析了抖音如何利用算法适配品牌调性为门店找到目标消费者,放大品牌势能,同时阐述了新品牌在抖音上进行品牌传播的优…

后端返回内容有换行标识,前端如何识别换行

<br/>的话 用 v-html \n 可以用css样式 white-space: pre-wrap 后端返回结果 前端

集成电路发展的两条主线

集成电路发展的两条主线&#xff0c; 1、增大晶圆尺寸&#xff0c;6、8、12英寸 晶圆尺寸不断增大&#xff0c;其设备要求不断增大。目前主流的8英寸&#xff0c;12英寸正在发展 2、芯片工艺制程不断减小

基于Hive和Hadoop的用电量分析系统

本项目是一个基于大数据技术的用电量分析系统&#xff0c;旨在为用户提供全面的电力消耗信息和深入的用电量分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark…

quill富文本插入表格quill-better-table

使用quill-better-table插件&#xff0c;官网GitCode - 全球开发者的开源社区,开源代码托管平台 安装 首先quill-better-table插件&#xff0c;官网有写需要 quills v2.0.0-dev3 我这里使用的是 quills v2.0.0-dev4&#xff0c;自行安装 然后就是安装我们的插件 quill-bett…

【项目资料】项目售后服务方案(Word)

1.1 售后服务方案 概述 售后服务体系 售后服务流程 售后服务承诺 售后服务计划 技术支持响应承诺 售后服务响应时间 1.2 项目培训方案 项目培训体系 项目培训管理 培训目的与措施 项目培训安排 培训告知下达 培训人员贯彻 培训签到表 软件全套资料部分文档清单&#xff1a; 工作…

10款超好用的文档加密软件|2024企业文档加密软件分享

在信息安全日益受到重视的今天&#xff0c;选择合适的文档加密软件至关重要。以下是2024年值得关注的10款超好用的文档加密软件&#xff0c;帮助企业提升数据安全性。 1. Ping32文档加密软件 Ping32专注于文档加密&#xff0c;采用强大的AES加密技术&#xff0c;确保敏感信息在…

领夹式无线麦克风哪个品牌好,口碑最好的领夹麦克风品牌推荐

对于追求专业音频录制的创作者而言&#xff0c;无线领夹麦克风不仅是录制设备&#xff0c;更是表达自我的艺术工具。从市场反馈中&#xff0c;我们发现西圣、大疆、罗德等品牌深受消费者喜爱。不过我看事情不能只看一面&#xff0c;在市场繁荣的表象下&#xff0c;一些劣质产品…

单片机的两种看门狗原理解析——IWDG和WWDG

一、IWDG独立开门狗的主要性能 计时机制&#xff1a; 递减计数器 独立开门狗的初始频率&#xff1a; LSI低速内部时钟&#xff1a;RC震荡器&#xff0c;40kHz 独立开门狗是以LSI为初始频率的&#xff0c;所以独立开门狗的初始时钟频率取决与单片机本身&#xff0c;因此在使…

Charles(青花瓷)抓取https请求

文章目录 前言Charles&#xff08;青花瓷&#xff09;抓取https请求 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&…

【工具分享】Chimera勒索病毒解密工具

前言 Chimera勒索软件首次出现在2015年&#xff0c;最初是在德国被发现。该勒索软件不仅加密受害者的文件&#xff0c;还威胁如果不支付赎金&#xff0c;就会将被盗的数据公开发布。这种“双重勒索”策略使得Chimera在众多勒索软件中脱颖而出。Chimera通常通过钓鱼邮件传播&am…

第五部分:6---信号的递达

目录 信号的递达流程&#xff1a; 信号在什么时候递达&#xff1f; 用户态和内核态&#xff1a; 内核态、用户态在页表的映射关系&#xff1a; 操作系统如何得知当前执行状态是用户态还是内核态&#xff1f; 操作系统如何处理被捕捉的信号&#xff1f; 信号的递达流程&am…

Python PyQt5 在frame中生成多个QLabel控件和彻底销毁QLabel控件

文章目录 步骤 1: 创建主窗口和布局步骤 2: 添加QLabel到QFrame步骤 3: 销毁QLabel示例代码 在PyQt5中&#xff0c;在QFrame或任何其他容器控件中生成多个QLabel控件并通过一个标志位或方法来彻底销毁这些QLabel控件是相对直接的操作。以下是一个简单的示例&#xff0c;展示了如…

爬虫小案例:爬取豆瓣网TOP250的电影信息(内含面相对象源码、及详细教学)

爬虫案例二———爬取豆瓣网TOP250的电影信息&#xff0c;并存入MySQL数据库 前提准备 安装pymysql库 pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple Python连接MySQL数据库&#xff0c;并进行增删改查基本操作 连接数据库 """连接MyS…

坚果N1 Air高亮版对比当贝D6X高亮版:谁是2000元预算的投影仪王者?

当贝D6X高亮版新品升级&#xff0c;对于那些计划在这个时间点购买投影仪的用户来说&#xff0c;现在是个绝佳的时机&#xff01;特别是那些预算在两千元左右的&#xff0c;目前两千元左右的投影仪&#xff0c;无外乎两款产品&#xff0c;当贝D6X高亮版和坚果N1 Air高亮版&#…

David律所代理Beau Parsons的小狗插画图案版权维权,速排查下架

案件基本情况&#xff1a;起诉时间&#xff1a;2024-9-16案件号&#xff1a;2024-cv-08505原告&#xff1a;Beau Parsons原告律所&#xff1a;David起诉地&#xff1a;伊利诺伊州北部法院涉案商标/版权&#xff1a;原告品牌简介&#xff1a;Beau Parsons是一位来自澳大利亚的专…

AI情感陪伴新纪元:WT2605C语音芯片在成人用品中的创新应用

在探索成人用品领域的无限可能时&#xff0c;科技的每一次进步都为我们带来了前所未有的体验。而今&#xff0c;WT2605C AI语音芯片的引入&#xff0c;正悄然改变着这一传统行业的面貌&#xff0c;为成人用品赋予了全新的情感陪伴功能&#xff0c;开启了智能化、个性化的新时代…