Blogger Information
Blog 37
fans 0
comment 1
visits 43068
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
那些我们使用VUE2.0+Mint-ui+axios踩过的坑
戈壁骆驼的博客
Original
1206 people have browsed it

那些我们使用VUE2.0+Mint-ui+axios踩过的坑

2018年01月25日 10:26:55 Doniet 阅读数:683更多

个人分类: web前端

前言

公司有一个项目,要求做到组件最大限度重用;由于项目比较赶,于是我决定使用比较熟悉VUE2.0来开发。没想到,让我踩了一大片的坑。虽然项目最终还是上线了,但是那些坑,让我每每想到都会有一股洪荒之力在体内流窜。

那些坑

修改Mint-ui的样式 
项目中要对所有的***端做适配,Mint-ui并做任何适配,因此,部分组件需要调整样式。可是在组件中去改变样式发现,并没有用。然而。在公共样式中去改却有效。不知道是因为Mint-ui组件是按需引入还是其他什么原因,一直未能找到。

axios请求 
项目开发时,由于后台没有做跨域处理,因此安装CROS插件。调试时,发现POST请求直接报:

Response for preflight is invalid (redirect)

但是使用jQuery的ajax却能成功发POST请求。什么原因,一直悬而未决。

IOS输入问题 
测试时,发现IOS键盘弹起,却无法输入,尼玛,什么鬼呀….于是各种百度,花了很长时间,才知道原来是html,body及通配样式里加了:

-webkit-user-select:none;

可是-webkit-user-select为什么会影响输入还不明就里。

与***端原生交互问题 
VUE的方法都是封装在自己的实例中,而IOS,Android能调用的JS对象,必须是全局的。这就必须得将某个方法暴露出来,这样破坏了vue方法的作用域,但是一直没有找到好的处理方法。

页面数据不会更新问题 
在用户列表页面进入添加用户页面,添加完用户后返回用户列表页面,发现页面数据不会更新。why???原来页面调用查询用户数据的方法只在页面创建时执行了一次。 
决解办法:

....
 beforeRouteEnter (to, from, next) {   next(vm => {
      vm.queryUsrList({page: 1})
  })
 }, ...


再次进入页面表单数据还存在问题 
在用户列表页面进入添加用户页面,添加完用户后返回用户列表页面,当再次进入添加用户页面时,发现上次添加的用户信息还存在。原因是vue实例中还保存着上次输入的信息。 
决解办法:

   ...
    beforeRouteLeave (to, from, next) {
      this.$destroy()      next()
    },  ...


路由参数变化,不会触发页面更新 
在用户列表中点击用户,跳转到用户详情页面。路由中会把用户ID传递到下一个页面。但是点击不同的用户,发现显示的是第一次得到得数据,与用户不匹配。原因还是页面调用查询用户数据的方法只在页面创建时执行了一次。

beforeRouteEnter (to, from, next) {
    next(vm => {
      vm.queryUsr({userId: to.params.id})
    })
  },


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post