- 问题
- el-table使用v-show失效,使用v-if 导致切换时数据串行
- JSON.parse(JSON.stringify(xxx))实现数据的深拷贝
- ie内核的浏览器---qq浏览器网络请求返回数据不是最新数据(读取了本地的缓存)
- vue中base64图片展示提示data:image/png;base64,undefined:1 GET data:image/png;base64,undefined net::ERR_INVALID_URL 问题
- vue 出现 Error in v-on handler: "RangeError: Maximum call stack size exceeded"错误
问题
el-table使用v-show失效,使用v-if 导致切换时数据串行
解决方法:不使用v-show 使用v-if 的时候加上 :key="Math.random()" 实质上就是使用el-table-column 不能知道这个是不是唯一,所以导致串行。加上key之后就会保证el-table-column是唯一的。就不会导致串行的问题了。
JSON.parse(JSON.stringify(xxx))实现数据的深拷贝
在数据的操作中经常会用到数据的深拷贝。比较常用的有JSON.parse(JSON.stringify(xxx))、jQ的$.extend、递归实现深拷贝
缺陷:它会抛弃对象的constructor,深拷贝之后,不管这个对象原来的构造函数是什么,在深拷贝之后都会变成Object;这种方法能正确处理的对象只有 Number, String, Boolean, Array, 扁平对象,也就是说,只有可以转成JSON格式的对象才可以这样用,像function、正则等没办法转成JSON
ie内核的浏览器---qq浏览器网络请求返回数据不是最新数据(读取了本地的缓存)
IE浏览器会缓存网页中的GET和XHR的内容,并且在IE浏览器中如果请求方式是get方式的话,IE浏览器会进行识别,如果该get请求的url是第一次请求的话,会请求项目的后台,从数据库中获取数据,如果该get请求的url不是第一次请求的话,那么该url就不会请求项目后台,IE浏览器会直接从缓存中拿到上次该url获取的数据,无论是什么插件的get方式请求,IE浏览器都会这样进行处理的
解决方法:
- 提交方式是get方式,但是在传递的参数中添加一个随机数或当前时间戳的参数,从而保证每次url请求唯一性,从而解决在IE浏览器中从数据库中获取数据
- 提交方式修改为post方法,这样就不会出现这样的问题了
vue中base64图片展示提示data:image/png;base64,undefined:1 GET data:image/png;base64,undefined net::ERR_INVALID_URL 问题
造成这样的原因
<img :src="'data:image/png;base64,' + sealInfo.base64" alt />
其中这个sealInfo是请求回来的数据。
解决方法:在数据返回的时候
this.sealInfo.base64 = 'data:image/png;base64,' + res.data.base64
vue 出现 Error in v-on handler: "RangeError: Maximum call stack size exceeded"错误
出现的原因就是自己调用了自己,程序进入了死循环仔细检查代码--比较常见出现的地方,函数内部调用,路由重定项到了自己头上。