• 【vue实战项目】通用管理系统:api封装、404页


    前言

    本文为博主的vue实战小项目系列中的第三篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容:

    【vue实战项目】通用管理系统:登录页-CSDN博客

    【vue实战项目】通用管理系统:封装token操作和网络请求-CSDN博客

    目录

    1.api封装

    2.404页面

    3.探讨


    1.api封装

    由于一个项目里api是很多的,随处都在调,如果按照之前的写法,在每个组件中去调api,一旦api有改动,遍地都要去改,所以api应该也要封装一下,将api的调用封装在函数中,将函数集中在一起便于管理。

    在src下面建一个api目录,用来放api,在api目录里建一个api.js,在其中封装各个api:

    由于项目到这一步为止,只用到了一个后端的api,即login,所以此处api.js内容如下:

    1. import service from '../utils/service'
    2. export function login(data){
    3. return service({
    4. method:'post',
    5. url:'/login',
    6. data
    7. })
    8. }

    抽出api.js后以后的后端api调用就用api.js中提供的函数,这里先改一下Login页面的api调用逻辑:

    1. import {setToken} from '@/utils/setToken.js'
    2. import {login} from '@/api/api.js'
    3. methods:{
    4. login(form){
    5. this.$refs[form].validate((valid)=>{
    6. if(valid){
    7. console.log(this.form)
    8. // this.service.post('/login',this.form)
    9. // .then(res=>{
    10. // console.log(res.status)
    11. // if(res.status===200){
    12. // setToken('username',res.data.username)
    13. // setToken('token',res.data.token)
    14. // this.$router.push('/home')
    15. // }
    16. // })
    17. login(this.form).then(res=>{
    18. console.log(res.status)
    19. if(res.status===200){
    20. setToken('username',res.data.username)
    21. setToken('token',res.data.token)
    22. this.$router.push('/home')
    23. }
    24. })
    25. }else{
    26. console.error(this.form)
    27. }
    28. })
    29. }
    30. }

    改完之后可以运行项目试试,是正常可用的。

    2.404页面

    接下来我们开发一下404页面,404页面作为系统的一个通用页面,任何非法请求,全部都会跳转到404页面上。我们可以参考一下现在大多数系统中404页面的做法,一张简洁的图+跳转回首页的路由即可。

    准备好404页面的背景图,新建好404页面的组件:

    组件代码:

    1. <template>
    2. <div class="background-container">
    3. <div class="content">
    4. <div>页面不见了!div>
    5. <div>首页瞧瞧,点击<router-link to="/">这里router-link>进入首页.div>
    6. div>
    7. div>
    8. template>
    9. <script>
    10. export default {
    11. name: 'YourComponent',
    12. };
    13. script>
    14. <style lang="less">
    15. /* Scoped styles for the component */
    16. .background-container {
    17. /* Adjust the path to your actual image file */
    18. background-image: url('../assets/404.jpg');
    19. background-size: cover;
    20. background-position: center;
    21. background-repeat: no-repeat;
    22. margin: 0;
    23. padding: 0;
    24. height: 100vh; /* Set the height to 100% of the viewport height */
    25. display: flex;
    26. justify-content: center;
    27. align-items: center;
    28. .content {
    29. text-align: center;
    30. }
    31. }
    32. style>

    接下来是所有非法请求都能转跳404页面的关键步骤——配置路由:

    请求进来会先去试图精准匹配路由,如果匹配不上就会交给通配符来处理,所以404页面的path用通配符即可实现访问方法页面转跳到404页面的效果。

    路由配置:

    1. import Vue from 'vue'
    2. import Router from 'vue-router'
    3. Vue.use(Router)
    4. export default new Router({
    5. routes:[
    6. {
    7. path:'/',
    8. redirect:'/login',
    9. component: ()=>import('@/components/Login')
    10. },
    11. {
    12. path:'/login',
    13. name:'Login',
    14. component: ()=>import('@/components/Login')
    15. },
    16. {
    17. path:'/home',
    18. component: ()=>import('@/components/HelloWorld')
    19. },
    20. {
    21. path:'*',
    22. name:'NotFound',
    23. component:()=>import('@/components/NotFound')
    24. }
    25. ],
    26. mode:'history'
    27. })

    最后看看效果:

    访问一个不存在的路径,转跳到404上。

    3.探讨

    这里探讨一下疯转api.js的价值(可以直接跳过):

    在现代前端开发中,封装一个独立的 api.js 文件通常是为了更好地组织和管理前端与后端之间的数据交互,以及统一管理 API 请求。

    以下是一些常见的原因:

    1. 代码组织和可维护性: 将所有与后端通信的 API 请求集中到一个文件中,可以更轻松地组织和维护代码。这使得团队能够更容易地找到和修改与 API 相关的代码。

    2. 统一管理 API 地址:api.js 中集中管理所有的 API 地址,可以使团队更容易地管理和更新这些地址,而不必在整个应用中进行广泛的查找和替换。

    3. 封装请求逻辑:api.js 中可以封装一些通用的请求逻辑,例如处理请求和响应的拦截器、认证信息的注入等。这有助于减少重复代码,提高代码的复用性。

    4. 易于测试: 将 API 请求逻辑封装到一个文件中,有助于更容易地进行单元测试。你可以专注于测试 api.js 文件,确保它正确处理各种请求和响应情况。

    5. 适应不同环境:api.js 中可以设置不同环境下的 API 地址,例如开发环境、测试环境和生产环境。这使得在切换环境时更加方便,而无需手动更改多个文件。

    6. 团队协作: 将 API 请求抽象到一个文件中,可以使团队更容易协作。开发人员可以专注于实现页面和组件,而不必深入关注底层的 API 请求细节。

    7. 更好的错误处理:api.js 中可以集中处理错误,例如统一处理错误状态码、添加通用的错误提示等,从而提供更好的用户体验。

    总的来说,封装一个独立的 api.js 文件有助于提高代码的可维护性、可测试性和团队协作效率,同时为应对各种场景提供了更好的灵活性。

  • 相关阅读:
    基本初等函数
    Python3中使用argparse模块解析命令行参数
    Linux操作系统:多进程拷贝
    【VTK+有限元后处理】实时剖切视图
    整人代码2
    【顺序栈的表示和实现,顺序栈的初始化,是否为空,清空顺序栈,销毁顺序栈,】
    自编码器Auto-Encoder
    假期题目整合
    JAVA IO——FileOutputStream
    vmware安装ubuntu22.04无法和window主机拷贝文件处理
  • 原文地址:https://blog.csdn.net/Joker_ZJN/article/details/134425895