来自vue异步请求的坑

出现问题:Error in render: "TypeError: Cannot read property 'href' of undefined"

变量xxx未声明?

当初出现这个问题的时候我表示很不解,最开始没有任何问题,心眼一大把data里的初始数据都删掉了。

自己所有的数据都在create里面赋值了,按道理说不会有问题的,然而就是出错了。自己的写法是在请求的时候创建新的对象push到表格绑定的数据里。

原因:ajax(或者axios)采用异步请求的方式,跟浏览器渲染页面同时进行,可能出现数据请求还没完成浏览器已经给你渲染数据的情况,此时就会出现上述问题。当时以为是create完之后才渲染

异步请求:

js里面没有多线程,取而代之的是回调函数。如下

this.$http.get(`api`).then((res)=>{function()})

function()就是你一个回调函数,也是你请求到数据跟前端数据绑定的函数,它与主函数是同时进行的。

vue默认先加载你data里面写的死数据,再加载请求后的数据。如果你的死数据(我这里为空)没法正常加载就会报错。

解决方法:去检查你死数据能不能正常渲染(前提是你像我一样请求的数据没错,可以console.log到控制台查看)

可能原因:表格写了固定的循环次数(改成data.length)或者给data加上默认数据

posted @ 2021-06-28 07:46  要记得吃饭啊  阅读(334)  评论(0编辑  收藏  举报