zoukankan      html  css  js  c++  java
  • vue中引用js文件的方法

    在vue的很多组件中都会用到axios来Post数据,每个组件中都写上一个post的方法倒是也可以,复制就行了,但是总感觉有些不方便,那么可以把axios的post写到一个单独的js文件中,然后在需要的组件中引用岂不是更好吗。

    1、在assets文件下新建一个js文件

    新建一个名称为webpost.js文件

    import axios from 'axios'
        //Post方法的封装
        function axiosPost(url,params){
            return new Promise((resolve, reject) => {
                    axios({
                    url: url,
                    method: 'post',
                    data: params,
                    headers: {
                        'Content-Type':'application/json'
                    }
                })
                .then(res=>{
                    resolve(res.data);
                });
            });
        }
    
        export {
            axiosPost
        }

    这个需要专门引用一下axios,也就是第一行,然后就可以使用了,最后一句很重要,不然你没法在别的组件中调用

    2、在需要使用此方法的组件中引用

    <script>
    import {axiosPost} from '../assets/webpost';
    export default {
    
    }

    注意引用的路径,import {}中的内容就是上面export中的内容

    使用的时候连this都不需要了,直接axiosPost就可以了

    axiosPost(url,params)
    .then(res=>{
    if (res===401){
       this.$message.error('哦,对不起,你所输入的用户名或密码有误!');
    }else{

    }

     3、js的另一种写法

    下面是重新编辑的部分,这几天又把axios部分整理了一下,加上了拦截器,用于向api请求时带上token验证,只多了一个export,可以写多个,结构更清晰,更容易理解。

    import axios from 'axios'
        //Post方法的封装
        export function axiosPost(url,params){
            return new Promise((resolve, reject) => {
                    //以下部分是拦截器功能
                    axios.interceptors.request.use(config=>{
                        const token=localStorage.getItem('token')
                        if(token){
                            config.headers.authorization=token
                        }
                        return config
                    },err=>{
    
                    })
                    //下面是正常的           
                    axios({
                        url: url,
                        method: 'post',
                        data: params,
                        headers: {
                            'Content-Type':'application/json'
                        }
                    })
                    .then(res=>{
                        resolve(res.data);
                    });
                });
        }
  • 相关阅读:
    分类与监督学习,朴素贝叶斯分类算法
    K-means算法应用:图片压缩
    聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
    numpy统计分布显示
    10.11作业numpy数据集练习
    9.29作业
    CAGradientlayer设置视图背景的渐变效果
    dyld: Library not loaded: @rpath/libswiftCore.dylib
    解读NSString之性能分析
    iOS UIButton超出父视图无法点击解决方法
  • 原文地址:https://www.cnblogs.com/wjbych/p/13125029.html
Copyright © 2011-2022 走看看