成都网站建设设计

将想法与焦点和您一起共享

怎么使用vue3axios实现数据渲染

这篇“怎么使用vue3 axios实现数据渲染”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用vue3 axios实现数据渲染”文章吧。

创新互联公司是专业的亚东网站建设公司,亚东接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行亚东网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1、axios的作用是什么呢?

axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。

2、项目安装axios及其他环境

打开cmd 进入项目根目录(src同级目录) ,输入命令    npm install axios

3、新建axios.js    内容复制以下

怎么使用vue3 axios实现数据渲染

axios.js

import axios from "axios";
import qs from "qs";

// axios.defaults.baseURL = ''  //正式
axios.defaults.baseURL = 'http://localhost:8099' //测试

//post请求头
axios.defaults.headers.post["Content-Type"] ="application/x-www-form-urlencoded;charset=UTF-8";
//设置超时
axios.defaults.timeout = 10000;

axios.interceptors.request.use(
    config => {
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

axios.interceptors.response.use(
    response => {
        if (response.status == 200) {
            return Promise.resolve(response);
        } else {
            return Promise.reject(response);
        }
    },
    error => {
        alert(`异常请求:${JSON.stringify(error.message)}`)
    }
);
export default {
    post(url, data) {
        return new Promise((resolve, reject) => {

            axios({
                method: 'post',
                url,
                data: qs.stringify(data),
            })
                .then(res => {
                    resolve(res.data)
                })
                .catch(err => {
                    reject(err)
                });
        })
    },

    get(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                method: 'get',
                url,
                params: data,
            })
                .then(res => {
                    resolve(res.data)
                })
                .catch(err => {
                    reject(err)
                })
        })
    }
};

4、直接在vue页面引用,axios.get或者.post方法

(vue2需要在main.js中挂载全局,vue3每次引用都需要  import,感觉有些臃肿)。


展示运行效果

后端接口:

怎么使用vue3 axios实现数据渲染

前端展示:

怎么使用vue3 axios实现数据渲染

5、踩坑记录

问题1:vue3 axios Error: Network Error

跨域请求问题,我是在后端拦截器类中处理的 ,重写 addCorsMappings 方法

   //跨域问题
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("*")
                .allowedOriginPatterns("*")
                .allowCredentials(true);
    }

问题2:Cannot set properties of undefined (setting 'books')

或者ReferenceError: books is not defined

不能直接给变量赋值,需要通过  methods 方法中 const vm = this; 获取变量赋值;

vue 请求接口代码需要放置methods,且在created()或者mounted()周期函数中调用该方法。

created() {   //生命周期函数(或者 mounted 函数)调用的方法才能运行
    this.getShops();
},
methods: {
    getShops: function () {
    const vm = this;   //传获取的结果 给页面
    }
}

问题3:Uncaught ReferenceError: Vue is not defined

或者Cannot read properties of undefined (reading 'get')

vue3不是通过Vue对象挂载,后面我每个页面直接引用了axios(目前vue3好像只有这种方式)

怎么使用vue3 axios实现数据渲染

以上就是关于“怎么使用vue3 axios实现数据渲染”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


当前标题:怎么使用vue3axios实现数据渲染
网站链接:http://chengdu.cdxwcx.cn/article/jieshi.html