当前位置:   article > 正文

vue+element+admin实现前后端连接_vue前端和后端怎么连接起来

vue前端和后端怎么连接起来

2022.10.19今天我学习了如何使用vue+element+admin实现前后端连接。

一、vue.config.js配置文件

首先在vue.config.js配置文件中的devServer添加proxy,如图:

  1. devServer: {
  2. port: port,
  3. open: true,
  4. overlay: {
  5. warnings: false,
  6. errors: true
  7. },
  8. proxy:{
  9. [process.env.VUE_APP_BASE_API]:{
  10. // 不需要/api/test
  11. //换成自己的接口
  12. target:`http://xxxxxxx`,
  13. changeOrigin:true,
  14. pathRewrite:{
  15. ['^'+process.env.VUE_APP_BASE_API]:''
  16. }
  17. }
  18. },
  19. // 假数据
  20. before: require('./mock/mock-server.js')
  21. },

二、.env.development配置文件

然后在.env.development配置文件中把VUE_APP_BASE_API的值放空。如图:

  1. # just a flag
  2. ENV = 'development'
  3. # base api
  4. # VUE_APP_BASE_API = ''取空
  5. VUE_APP_BASE_API = ''

三、api中添加新的js文件

  1. import request from '@/utils/request'
  2. // 定义一个接口
  3. // params传参
  4. export function ceshi(xxx) {
  5. return request({
  6. url: '/api/test',
  7. method: 'get',
  8. params:{xxx}
  9. })
  10. }

四、在view中添加新的展示页面

  1. <template>
  2. <div>
  3. <h1 style="text-align: center">天气预报</h1>
  4. <!-- :data="loadData"存放新数据 -->
  5. <el-table :data="loadData" style="width: 100%;" >
  6. <el-table-column label="日期" width="180" >
  7. <template slot-scope="scope">
  8. <i class="el-icon-time"></i>
  9. <span style="margin-left: 10px">{{ scope.row.date }}</span>
  10. </template>
  11. </el-table-column>
  12. <el-table-column label="风级" width="180">
  13. <template slot-scope="scope">
  14. <span style="margin-left: 10px">{{ scope.row.direct }}</span>
  15. </template>
  16. </el-table-column>
  17. <el-table-column label="气温" width="180">
  18. <template slot-scope="scope">
  19. <span style="margin-left: 10px">{{ scope.row.temperature}}</span>
  20. </template>
  21. </el-table-column>
  22. <el-table-column label="天气" width="180">
  23. <template slot-scope="scope">
  24. <span style="margin-left: 10px">{{ scope.row.weather }}</span>
  25. </template>
  26. </el-table-column>
  27. <el-table-column label="操作">
  28. <template slot-scope="scope">
  29. <el-button size="mini" @click="handleEdit(scope.$index, scope.row)"
  30. >编辑</el-button
  31. >
  32. <el-button
  33. size="mini"
  34. type="danger"
  35. @click="handleDelete(scope.$index, scope.row)"
  36. >删除</el-button
  37. >
  38. </template>
  39. </el-table-column>
  40. </el-table>
  41. <button @click="ceshia()">测试接口</button>
  42. </div>
  43. </template>
  44. <script>
  45. import { ceshi } from "@/api/ceshi";
  46. export default {
  47. data() {
  48. return {
  49. loadData: "",
  50. city: "",
  51. tableData: [
  52. {
  53. city: "xx",
  54. date: "2022-10-19",
  55. temperature: "19/23℃",
  56. weather: "阴转多云",
  57. },
  58. ],
  59. tableData2: [
  60. {
  61. city: "xx",
  62. date: "2022-10-19",
  63. temperature: "19/23℃",
  64. weather: "阴转多云",
  65. },
  66. ],
  67. };
  68. },
  69. created: {},
  70. methods: {
  71. // 调用api的ceshi方法
  72. ceshia() {
  73. console.log(1);
  74. // ceshi()里面传参
  75. ceshi("xx").then((res) => {
  76. console.log(res);
  77. this.loadData = res.data;
  78. console.log("loadData", this.loadData);
  79. // for循环嵌套for循环
  80. // for (let i=0 ; i < this.loadData.length; i++) {
  81. // console.log(this.loadData[i].class, this.loadData[i].grade);
  82. // for(let a=0;a<this.loadData[i].student.length;a++){
  83. // console.log(this.loadData[i].student[a].name,this.loadData[i].student[a].age);
  84. // }
  85. // }
  86. });
  87. },
  88. },
  89. };
  90. </script>
  91. <style>
  92. button {
  93. background-color: white;
  94. }
  95. </style>

最主要的一点就是res.data的数据赋值给loadData然后在:data中读取。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/111771
推荐阅读
相关标签
  

闽ICP备14008679号