十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇“怎么使用vue3 axios实现数据渲染”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用vue3 axios实现数据渲染”文章吧。
创新互联公司是专业的亚东网站建设公司,亚东接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行亚东网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
1、axios的作用是什么呢?
axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。
2、项目安装axios及其他环境
打开cmd 进入项目根目录(src同级目录) ,输入命令 npm install axios
3、新建axios.js 内容复制以下
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,感觉有些臃肿)。
请求状态码:{{code}},请求状态:{{msg}}
编号 图书名称 作者 {{item.id}} {{item.name}} {{item.author}}
展示运行效果
后端接口:
前端展示:
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实现数据渲染”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。