美文网首页
vue + axios + json-server 快速创建前端

vue + axios + json-server 快速创建前端

作者: 一只鱼_d589 | 来源:发表于2020-10-16 17:27 被阅读0次

    前提: npm vue均已安装

    1. 使用vue-cli搭建项目

    cnpm install -g vue-cli
    
    vue init webpack
    
    
    image.png

    2. 安装axios

    npm install --save axios  vue-axios
    

    页面导入: import axios from 'axios'
    创建api.js

    import axios from 'axios'
    import vue from 'vue'
    
    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
    
    // 请求拦截器
    axios.interceptors.request.use(function(config) {
        return config;
      }, function(error) {
        return Promise.reject(error);
      })
      // 响应拦截器
    axios.interceptors.response.use(function(response) {
      return response;
    }, function(error) {
      return Promise.reject(error);
    })
    
    // 封装axios的get请求
    export function GET(url, params) {
        return new Promise((resolve, reject) => {
          axios.get(url, params)
            .then(response => {
              resolve(response.data);
            })
            .catch((error) => {
              reject(error);
            })
        })
    }
    
    
    // 封装axios的post请求
    export function POST(url, params) {
        return new Promise((resolve, reject) => {
          axios.post(url, params)
            .then(response => {
              resolve(response.data);
            })
            .catch((error) => {
              reject(error);
            })
        })
    }
    
    // 封装axios的put请求
    export function PUT(url, params) {
        return new Promise((resolve, reject) => {
          axios.put(url, params)
            .then(response => {
              resolve(response.data);
            })
            .catch((error) => {
              reject(error);
            })
        })
    }
    
    // 封装axios的delete请求
    export function DELETE(url, params) {
        return new Promise((resolve, reject) => {
          axios.delete(url, params)
            .then(response => {
              resolve(response.data);
            })
            .catch((error) => {
              reject(error);
            })
        })
    }
    
    export default {
      GET_list(url, params) {
        return GET(url, params);
      }
    }
    

    安装json-server

    npm install json-server -g
     json-server db.json --port 8080
    

    axios配置

    proxyTable: {
          '/api/': {
            target: 'http://localhost:3003', //将http://localhost:3003映射到/api
            changeOrigin: true,   //是否跨域
            pathRewrite: { 
              '^/api': '',   // 因为在 ajax 的 url 中加了前缀 '/api',而原本的接口是没有这个前缀的,所以需要通过 pathRewrite 来重写地址,将前缀 '/api' 转为 '/'
            }
          }
        },
    
    <script>
    import api from './../axios/api.js'
    import NewsCell from './NewsCell.vue'
    
    export default {
      name: 'index',
      data () {
        return {
          newsListShow: [],
        }
      },
      components: {
        NewsCell
      },
      created() {
        this.setNewsApi();
      },
      methods:{
        setNewsApi: function() {
          api.JH_news('/news/index', 'type=top&key=123456')
          .then(res => {
            console.log(res);
            this.newsListShow = res.articles;
          });
        },
      }
    }
    </script>
    

    相关文章

      网友评论

          本文标题:vue + axios + json-server 快速创建前端

          本文链接:https://www.haomeiwen.com/subject/alazpktx.html