发表于: 2019-08-19 20:32:19
1 793
今天完成的事情:
1 完成操作疯的删除,上线部分。 列表显示图片。新增页面进度的百分号显示
明天计划的事情:
1 完成操作部分,新增页面的上传
遇到的问题:
1 操作的删除按钮删除完刷新的问题,自己删掉服务器内的数据我本地的页面并不会自动刷新,而我请求的又是写在钩子函数mounted内的,想手动给他执行,查了一圈没发现啥方法,后面就想着给整个页面的刷新一下,mounted自然就会重新执行。
一开始是自己做的,就是成功后再进入当前的页面。代码如下,发现重新路由到当前页面,页面不进行刷新
然后就去搜索了下别的方法,有一个是先跳转到一个空白页,然后在那个空白页设置跳回刚刚那也页面,他教程是在data() {this.$router.replace('地址')}这样直接设置的,但是我试了下发现都成不了,跳到空白页后就不能再跳回之前的页面了,它这个写的应该是有问题,我之后去收别的也没发现用这种的,所以就先把他搁置了。
之后又换了一种方法,如下。
上面这个$router.go(0)的方法是成了,页面也刷新了,有个小问题就是每次刷新都会闪一下空白页面,这个是方法本身的问题。我这还有个大问题就是虽然页面刷新了,但是我删除的那一列并没有删除,刷新了还在那。一开始都搞不懂为啥,经过自己一系列的打印测试,发现了是我写的问题,我直接再axios下刷新这个页面,而不是在axios成功后(.then)中刷新页面,就会因为axios是异步,然后下面的先执行。直接就刷新页面了,axios都还没请求,所以自然就删不掉了。之后改了就好了。
之后又测试了一种方法。
简单来说就是我吧要展示的列表的父元素设置了v-if,而上面的articleShow就是设置他渲不渲染的,每次请求完,就让他销毁,然后再渲染,这样mouted也会再执行的,想法很好,但是也没成,因为mouted是el被新建vm.$el替换,并挂载到实例上后调用。而我上面这样操作,仅仅是重新渲染当前页面v-if的那一部分,也只有那一部分内的用到方法会重新执行。并不会触发mounted。最后改进了一下,用的provide / inject 组合。写在收获中
2 吃完饭回来重新登入页面的时候发现input的背景颜色变了,然后你点击后他就变回来了
去搜索了一下发现是谷歌的浏览器自动填充机制导致的问题,是谷歌私有属性input:-webkit-autofill引起的。就是你页面里有一个type=password的input且这个input之前有一个type=text(tel)的input的时候就会进行自动填充,浏览器填充是在js执行后执行的。
只想把背景颜色改变的话可以用 :-webkit-autofill { 设置内阴影解决,字体颜色 },还可设置border等注意权重不够的话加上!important。
但是如果不想自动填充的话,可以给input加上父元素form标签(谷歌直接就可以了,其他的如果不行就加在form标签加autocomplete="off"关闭表单自动填写功能)
3 还是吃完饭回来发现控制台报了一个错,之前都没有问题的。如下。翻译了下 ERR \ \ U拒绝连接
自己测了半天发现其实功能是都没问题的,我都不知道哪里出了毛病,找也找不到,后来直接把这一串贴到搜索中发现有一遍是这么说的
反正我就当做是自己这边域名的问题了,可能是自己这端口哪里冲突了,所以我自己把vscode关了,再开起来运行下项目发现就好了。也是有点莫名其妙。
收获:
一: 看了刷新当前页面的三种方法
第二步: 在需要刷新的页面。 在页面注入App.vue组件提供provide的reload依赖,在逻辑完成之后(删除或添加...),用this.reload( )调用,即可刷新当前页面
评论