前端项目开发问题记录

549 阅读3分钟

问题1、git对文件名大小写输入不敏感。

昨天提交本地的代码到远程分支自动构建失败,尝试拉取代码排错,发现竟然没有错误,检查了构建日志,发现是文件组件名card.vue修改成Card.vue,但是 git没有反应导致的。

解决方案:

1、切换到目标没有提交的文件目录,使用git mv命令

git mv card.vue Card.vue

暴力一点可以直接通过拷贝文件,删除文件,粘贴文件处理

问题2、由于引用共有组件所以导致了有些地方修改的时候定位错了文件。

解决方案:

这个其实是规划问题,

  1. 平时开发的时候最好都清理一些干扰项,关闭一些不必要的标签页面 2、代码在commit之前先审阅一下代码,检查一下有没有问题 3、代码提交到分支,最好也上去看下执行改动

问题3、如何限制表单输入限制两位小数

解决方案:

通过正则匹配式匹配:

/^\d+\.?\d{0,2}/

问题4、正则如何判断字符创是否数字,允许小数存在

/^\d+\.?\d*/

问题5、bug:element-ui的组件el-popconfirm里面slot插槽不要使用v-if来作为判断展示。

原因:

弹出框的附着插槽如果用if判断语句,弹出框找不到附着点,后面如果页面不刷新,按钮动态出来的话,点击弹窗弹不出来

问题6、边界问题怎么考虑

个人看法: 边界问题太多了,我们按开发流程分开来讨论。

问题7:怎么判断数值value是否为数字

普通解决方案es5兼容:

const num = Number(value)
return num !== num // 总所周知:NaN !== NaN return true

es6 方案: Number.isNaN(), NaN全拼 Not a Number

问题8:设置display:box但是postcss-loader警告:

You should write display: flex by final spec instead of display: box

原因:display:box是2009年的写法,display:flex是2012年的写法。postcss检查语法的时候会推荐你使用flex来代替旧时代的写法。但是如果你的产品需求需要在ios设备下运转,则还需要这个box的语法,使用display: -webkit-box来代替。

问题9: autoprefixer插件报错:

Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.

这个报错是由于autoprefixer更新的影响,报错信息可以翻译过来,第二行的/* autoprefixer: on */被忽略了,只要有第一行/* autoprefixer: off */,那么这一行代码所在的样式块(大括号{}里面的代码)都会被autoprefixer自动省略,需要自己完整适配各个浏览器前缀。

问题10: forEach里面使用contine报错。forEach里面不可以使用contine和break。

解决方案:可以使用在限制条件里面使用return跳到下一个循环,可以使用break来进行循环的中断,中断的话也可以使用Array.some.