• vue项目使用整理


    1.1  axios 基本用法

       安装:npm install axios -S                   # 也可直接下载axios.min.js文件

      1、axios借助Qs对提交数据进行序列化

          axios参考博客:https://www.jianshu.com/p/68d81da4e1ad

                                    https://www.cnblogs.com/yiyi17/p/9409249.html

          axios官网:https://www.npmjs.com/package/axios 

     get:axios发送get请求
     post: axios发送post请求
     views.py后端测试接口
    复制代码
    #1、qs用途:  在 axios中,利用QS包装data数据
    #2、安 装:    npm install qs -S
    #3、常见用法:
    '''
    import Qs from 'qs';
    Qs.stringify(data);
    Qs.parse(data)
    '''
    复制代码

      2、axios上传文件

     test.html
     views.py

     1.2 封装axios发送请求 & 添加拦截器

        参考:https://blog.csdn.net/qq_40128367/article/details/82735310

      1、初始化vue项目

    # vue init webpack deaxios
    # npm install axios -S
    # cnpm install vuex -S
    # cnpm install vant -S
    # cnpm install nprogress -S

      2、封装axios(创建 src/api 文件夹)

     configurls.js 配置全局url变量
     srcapiajax.js 封装axios请求
     srcapiaxiosinstance.js 自定义axios 实例
     srcapiindex.js 导出api模块
     srcstoreindex.js 全局导出路由方法变量
     main.js 使用钩子函数进行路由控制

      3、使用封装的axios发送请求

     srcapiapi.js 定义请求路由方法
     App.vue 导入路由请求方法测试请求数据

       4、如果需要上传图片或文件 srcapiajax.js 中传入的 params参数不可使用Qs序列化

     srcapiajax.js 封装axios请求(需要上传图片)
     Goods.vue 上传图片测试
     views.py

     1.3 vue配置前端跨域

       参考博客:https://www.cnblogs.com/qqing/p/8980199.html

      1、初始化vue项目

    vue init webpack my-project  # 初始化项目
    cd my-project                # 进入项目路径
    cnpm install                 # 安装依赖
    cnpm install axios -S        # 安装axios

      2、在 src/main.js 中如下声明使用

    import axios from 'axios';
    Vue.prototype.$axios=axios;

      3、在 config/index.js 中的 的dev 添加以下代码,设置一下proxyTable

    复制代码
        //加入以下
        proxyTable:{
          '/api': {
            target : 'http://127.0.0.1:8000',   //设置你调用的接口域名和端口号.别忘了加http
            changeOrigin : true,                 //允许跨域
            pathRewrite : {
              '^/api':''
              // ''这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替。
              // 比如我要调用'http://127.0.0.1:8000/index/',直接写‘/api/index/’即可
            }
          }
        },
    复制代码

      4、在 config/dev.env.js 中设置以下代码

    module.exports = merge(prodEnv, {
      NODE_ENV: '"development"',  //开发环境
      API_HOST:"/api/"
    })

      5、在 config/prod.env.js 中设置以下代码

    module.exports = {
      NODE_ENV: '"production"',//生产环境
      API_HOST:'"127.0.0.1:8000"'
    }

      6、修改srcApp.vue文件

    复制代码
    <template>
      <div id="app">
        <button @click="testAxios()">测试axios</button>
      </div>
    </template>
    
    <script>
      import axios from 'axios';
      export default {
        data () {
          return {
    
          }
        },
        methods:{
          testAxios () {
            this.$axios.get('/api/index/')
              .then((response) => {
                console.log(response.data)
              })
          }
        }
      }
    </script>
    复制代码

      7、说明

          1. vue前端结局跨域主要思想是代理功能,比如:
              vue项目:http://localhost:8080/
              后端项目:http://127.0.0.1:8000/

          2. 在浏览器端访问 http://localhost:8080/api/index/ 路径时,vue会匹配到以 /api/ 开头的请求

          3. 此时 vue会使用代理功能 自动转发到  http://127.0.0.1:8000/index/   此时就是同一个域,就不会触发跨域问题

  • 相关阅读:
    求X的N次乘方
    用辗转相除法求两个正整数的最大公约数
    求两、三个数中较大者的函数
    电文加密问题
    C#纯数学方法递归实现货币数字转换中文
    查找二维数组的查找之杨氏矩阵
    IT公司笔经面经
    排序2计数排序,桶排序
    windows Concurrency Runtimewindows的并行编程模型
    <c++ primer>第五部分 高级主题
  • 原文地址:https://www.cnblogs.com/ngngng/p/13746375.html
Copyright © 2020-2023  润新知