[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-public-aKzqZqzY":3,"public-project-articles-aKzqZqzY":17},{"id":4,"uuid":5,"project_id":6,"title":7,"content":8,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},20,"aKzqZqzY",26,"03. 实现登录功能","\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1700120402119-8c2918a7-05da-4b37-8547-5a142c2ab60c.png#averageHue=%23e3e8e3&clientId=u8c03d572-9111-4&from=paste&id=uf1d975ad&originHeight=853&originWidth=1280&originalType=url&ratio=1.25&rotation=0&showTitle=false&size=1108218&status=done&style=none&taskId=ufc927b7d-46b0-4a71-8ba9-ee7f60937e8&title=)\n\n# 配置 Vue 的启动项\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1700142248291-7e1068fa-4893-41c3-be5e-11919cedbd7f.png#averageHue=%233e4245&clientId=u890718cf-3416-4&from=paste&height=344&id=uac5137b6&originHeight=430&originWidth=1309&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=34736&status=done&style=none&taskId=u8cc33473-d0f6-451e-90b8-38c3b91e6c6&title=&width=1047.2)\n\n# 画页面\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1700143406457-ea75641e-d7ae-4eae-9d51-a019707c2ff5.png#averageHue=%23e3e8e4&clientId=u890718cf-3416-4&from=paste&height=716&id=ue8ea4863&originHeight=895&originWidth=1920&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=933874&status=done&style=none&taskId=u9adfd2a6-35f2-4a01-bbfa-73fcd68d443&title=&width=1536)\n\n# 表单校验\n\n```vue\nconst formRef = ref()\n\nconst login = () => {\n  formRef.value.validate((valid) => {\n  \tconsole.log(valid)\n  })\n}\n```\n\nformRef 这个变量 必须跟 表单里绑定的 ref 的名称一样!\n\n# Vue 登录\n\n```\nimport {reactive, ref} from \"vue\"\nimport request from \"@\u002Futils\u002Frequest\";\nimport {ElMessage} from \"element-plus\";\n```\n\n```vue\nconst login = () => {\n  formRef.value.validate((valid) => {\n    if (valid) {\n      request.post('\u002Flogin').then(res => {\n        if (res.code === '200') {\n          localStorage.setItem('student-user', JSON.stringify(res.data))\n          ElMessage.success('登录成功')\n          location.href = '\u002Fhome'  \u002F\u002F 跳转到主页\n        } else {\n          ElMessage.error(res.msg)\n        }\n      })\n    }\n  })\n}\n```\n\n# 写接口\n\n```css\n\u002F**\n * 登录接口\n *\u002F\n@PostMapping(\"\u002Flogin\")\npublic Result login(@RequestBody Admin admin) {\n    Admin dbAdmin = adminService.login(admin);\n    return Result.success(dbAdmin);\n}\n```\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1700144814625-c328f738-f87e-488a-be25-04dfb59511fb.png#averageHue=%232f2e2d&clientId=ua517571f-a8dd-4&from=paste&height=118&id=u725aca39&originHeight=147&originWidth=1832&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=37483&status=done&style=none&taskId=ufa85fa06-6ce9-487a-91b0-37efc8c7606&title=&width=1465.6)\n前端没传数据就会报这个错误\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1700144928028-5d37ac8f-dd1f-4cc2-8e96-8cf1f3f7adc8.png#averageHue=%2334302e&clientId=ua517571f-a8dd-4&from=paste&height=400&id=u935b7a93&originHeight=500&originWidth=1405&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=173120&status=done&style=none&taskId=u38d5e0c7-5546-4824-80cc-2ebd2c7b761&title=&width=1124)\n么有数据库 就会报这个错误\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1700144983358-f7a2dbd1-8e72-4d08-a838-5e74a35fbd4b.png#averageHue=%23f7f6f6&clientId=ua517571f-a8dd-4&from=paste&height=392&id=u042bec98&originHeight=490&originWidth=560&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=13320&status=done&style=none&taskId=uc4f7bd3c-580f-411d-9823-2988ff2eb6e&title=&width=448)\n","coding",1,3607,21,"2024-04-16 02:36:48","2026-05-03 22:49:02","SpringBoot+Vue3的学生成绩管理系统","student-performance",{"project":18,"items":19},{"id":6,"title":15,"slug":16},[20,27,32,33,39,45,51,57,62,68,74,80,86,92,98,104],{"id":21,"uuid":22,"project_id":6,"title":23,"type":9,"status":10,"public_enabled":10,"views":24,"sort":25,"created_at":26,"updated_at":14,"project_title":15,"project_slug":16},18,"7r0zrxqF","01. 学生成绩管理系统介绍",3753,19,"2025-01-09 10:22:30",{"id":25,"uuid":28,"project_id":6,"title":29,"type":9,"status":10,"public_enabled":10,"views":30,"sort":4,"created_at":31,"updated_at":14,"project_title":15,"project_slug":16},"h5U5WN1A","02. 脚手架介绍",3957,"2025-01-09 10:22:49",{"id":4,"uuid":5,"project_id":6,"title":7,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},{"id":12,"uuid":34,"project_id":6,"title":35,"type":9,"status":10,"public_enabled":10,"views":36,"sort":37,"created_at":38,"updated_at":14,"project_title":15,"project_slug":16},"xve1cq5m","04. 开发课程管理页面",1907,22,"2024-04-16 02:36:40",{"id":37,"uuid":40,"project_id":6,"title":41,"type":9,"status":10,"public_enabled":10,"views":42,"sort":43,"created_at":44,"updated_at":14,"project_title":15,"project_slug":16},"KUfmmtjB","05. 开发课程分页查询接口",1303,23,"2024-04-16 02:36:36",{"id":43,"uuid":46,"project_id":6,"title":47,"type":9,"status":10,"public_enabled":10,"views":48,"sort":49,"created_at":50,"updated_at":14,"project_title":15,"project_slug":16},"5aLIaQCP","06. 开发课程前后台数据对接",1040,24,"2024-04-16 02:36:32",{"id":49,"uuid":52,"project_id":6,"title":53,"type":9,"status":10,"public_enabled":10,"views":54,"sort":55,"created_at":56,"updated_at":14,"project_title":15,"project_slug":16},"dTwkIyqR","07. 开发课程新增和编辑功能",991,25,"2024-04-16 02:36:27",{"id":55,"uuid":58,"project_id":6,"title":59,"type":9,"status":10,"public_enabled":10,"views":60,"sort":6,"created_at":61,"updated_at":14,"project_title":15,"project_slug":16},"NlyNo5n8","08. 开发课程管理删除功能",666,"2024-04-16 02:36:23",{"id":6,"uuid":63,"project_id":6,"title":64,"type":9,"status":10,"public_enabled":10,"views":65,"sort":66,"created_at":67,"updated_at":14,"project_title":15,"project_slug":16},"dDLZGpA4","09. 开发学生登录功能",1019,27,"2024-04-16 02:36:20",{"id":66,"uuid":69,"project_id":6,"title":70,"type":9,"status":10,"public_enabled":10,"views":71,"sort":72,"created_at":73,"updated_at":14,"project_title":15,"project_slug":16},"5qCBv54l","10. 开发学生注册功能",811,28,"2024-04-16 02:36:15",{"id":72,"uuid":75,"project_id":6,"title":76,"type":9,"status":10,"public_enabled":10,"views":77,"sort":78,"created_at":79,"updated_at":14,"project_title":15,"project_slug":16},"smeYDA8N","11. 开发学生管理功能",1060,29,"2024-04-16 02:36:10",{"id":78,"uuid":81,"project_id":6,"title":82,"type":9,"status":10,"public_enabled":10,"views":83,"sort":84,"created_at":85,"updated_at":14,"project_title":15,"project_slug":16},"eji2Bt8v","12. 开发文件上传下载功能",914,30,"2024-04-16 02:36:07",{"id":84,"uuid":87,"project_id":6,"title":88,"type":9,"status":10,"public_enabled":10,"views":89,"sort":90,"created_at":91,"updated_at":14,"project_title":15,"project_slug":16},"BkumMnOk","13. 开发个人资料功能",980,31,"2024-04-16 02:36:03",{"id":90,"uuid":93,"project_id":6,"title":94,"type":9,"status":10,"public_enabled":10,"views":95,"sort":96,"created_at":97,"updated_at":14,"project_title":15,"project_slug":16},"C7ux2BRH","14. 开发学生选课功能",1221,32,"2024-04-16 02:35:58",{"id":96,"uuid":99,"project_id":6,"title":100,"type":9,"status":10,"public_enabled":10,"views":101,"sort":102,"created_at":103,"updated_at":14,"project_title":15,"project_slug":16},"fLHT6xiE","15. 开发成绩管理功能",1253,33,"2024-04-16 02:35:54",{"id":105,"uuid":106,"project_id":6,"title":107,"type":9,"status":10,"public_enabled":10,"views":108,"sort":109,"created_at":110,"updated_at":111,"project_title":15,"project_slug":16},56,"k3gvEqlV","基于SpringBoot+Vue3的学生成绩管理系统资料汇总",355,100,"2024-12-26 16:23:07","2026-05-07 15:36:12.649662+00"]