后台获取数据封装

使用vue框架时获取后台数据,将axios封装的代码:

一.首先在src新建utils文件夹再建index.js文件,在此做数据的封装.

import axios from 'axios';



// process.env.NODE_ENV环境
let baseURL;
if (process.env.NODE_ENV === 'development') {
    baseURL = 'http://132.232.87.95:3000/api'
} else {
//生产地址
    baseURL = '/xxxx'
}

// 配置baseUrl
const $http = axios.create({
    baseURL,
})

export const get = (url, params) => {
    params = params || {};
    return new Promise((resolve, reject) => {
        $http.get(url, {
            params,
        }).then(res => {
            if (res.data.status === 0) {
                resolve(res.data);
            } else {
                alert(res.data.msg);
            }
        }).catch(error => {
            alert('网络异常');
        })
    });
}
export const post = (url, params) => {
    params = params || {};
    return new Promise((resolve, reject) => {
        $http.post(url, params).then(res => {
            if (res.data.status === 0) {
                resolve(res.data);
            } else {
                alert(res.data.msg);
            }
        }).catch(error => {
            alert('网络异常');
        })
    });
}


第二步到main.js 将封装函数导入.

import {get,post} from './utils/index'//文件路径自己看情况写
Vue.prototype.$http = {
  get,
  post
}

第三步在到需要使用后台数据的index.vue的页面中引用(如my里面的index.vue)

export default {
  data() {
    return {
      cinemas: []
    };
  },
  created() {
    this.getFilmList();
  },
  methods: {
    async getFilmList() {
      const url = "/cinema/getList";
      const res = await this.$http.get(url);
      this.cinemas = res.cinemas;
    }
  }
};

第四步渲染页面:


    <div class="mg-t-15 bd-gray" v-for="(item,index) in cinemas" :key="index">
      <div class="flex-sb">
        <p class="f14 mg-l-15">{{item.name}}</p>
        <p class="orangr f6 mg-r-15">
          &yen;
          <span class="f16">{{item.lowPrice/100}}</span>起
        </p>
      </div>
      <div class="flex-sb mg-t-8 pd-b-15">
        <p class="ell f12 gray mg-l-15">{{item.address}}</p>
        <p class="gray f12 mg-r-15">{{item.Distance.toFixed(2)}}km</p>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      cinemas: []
    };
  },
  created() {
    this.getFilmList();
  },
  methods: {
    async getFilmList() {
      const url = "/cinema/getList";
      const res = await this.$http.get(url);
      this.cinemas = res.cinemas;
    }
  }
};
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 3,036评论 1 4
  • 基于Vue的一些资料 内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 element★...
    尝了又尝阅读 1,199评论 0 1
  • 响应式布局的理解 响应式开发目的是一套代码可以在多种终端运行,适应不同屏幕的大小,其原理是运用媒体查询,在不同屏幕...
    懒猫_6500阅读 816评论 0 0
  • vue-cli搭建项目 确保安装了node与npm 再目标文件夹下打开终端 执行cnpm i vue-cli -g...
    Akiko_秋子阅读 3,304评论 1 22
  • vue-cli3项目搭建配置以及性能优化 在之前的开发中主要用的是vue-cli2,最近空闲时间比较多,接下来有新...
    bayi_lzp阅读 19,506评论 16 68