VUE、JS之 记录一些工作中遇到的小问题,持续更新~
开个帖记录一些工作中遇到的问题吧,很多都是因为没有注意到,或者基础薄弱导致的~
问题1:
现象:使用vue时控制台报错 handler.apply is not a function
原因: vue 的data中定义的属性名与 methods 中的方法重名
问题2:
现象:使用elementui的表单时,需要对某个字段做自定义校验,这个字段的校验函数中又可能涉及到多个字段。
如下:错误写法,一个正则运用到两个字段上,校验始终都不会通过(value 为输入的值, num为需要同时校验的另一个值)
checkTwoFileds (rule, value, callback) { let reg = /^[1-9]\d*$/g if (!reg.test(value)) { callback(new Error('必须输入正数')) } if (!reg.test(this.num)) { callback(new Error('必须输入正数')) } callback() },
需要:定义两个一样的正则,分别运用到不同的字段上(value 为输入的值, num为需要同时校验的另一个值),方可正确校验
checkTwoFileds (rule, value, callback) { let reg = /^[1-9]\d*$/g let reg1 = /^[1-9]\d*$/g if (!reg.test(value)) { callback(new Error('必须输入正数')) } if (!reg1.test(this.form.num)) { callback(new Error('必须输入正数')) } callback() },
问题3
现象:使用elementui 表格时,有一种实际场景,一个页面下有两个tab,每个tab下都有一个表格,但是又不想写两个表格,所以就用v-if来显示或隐藏某些列。
需要:最好给每个列都给定一个唯一的key值,否则会出现v-if的那列数据和前后两列的数据产生混乱错误
问题4
现象:当系统打开了一个网页放着,在这期间如果有版本更新(部署代码),再去点击这个网页会报请求服务器资源404(重新打包后原文件可能被更改删除)
需要:路由监听错误,当错误时刷新当前页(资源重载)
import VueRouter from 'vue-router' const router = new VueRouter({ mode: 'hash', base: '/', routes, // 定义的路由数据 }) // 捕获异常情况 router.onError((error) => { window.location.reload() })
问题5
现象:使用router.push跳转页面,跳转失败,不管怎么点击都是变成刷新当前页面
原因:其实就是要跳转的那个页面代码出错了(有时候编译不会报错,要认真地去找下,比如我知道这个就是因为一个引入的js没有引入到....)
问题6
现象:表单不见了!在最新版的谷歌浏览器,edge浏览器上都复现出了这个问题,在获取数据后再渲染表单,但是这时候会发现页面上的表单元素都不展示了(控制台看dom元素还在.......,就是这么神奇)
原因:同时使用了v-if和组件库的v-loading,把v-loading去掉就好了(原因还是不知道的)
持续更新~ 小伙伴们有问题也可以补充哈~