1.IOS时间问题
IOS设备时间不支持YYYY-MM-dd 需要改成YYYY/MM/dd
2.IOS9 ES6支持问题
.babelrc 加入
browser:{
"iOS >= 9",
"safari >= 7"
}
webpack和vue main 引入

3.IOS9 绝对定位差异
当定位值没有设置的时候不会有默认 比如margin:auto 四向0 可以居中 在IOS9就不会居中 需要手动设置具体值
4.当url传参中再度包含url时需要encodeURIComponent再度转化 否则在之后的参数会被附加在其中
5.QQ聊天记录
移动端:window.open(`mqqapi://card/show_pslcard?src_type=internal&version=1&uin=${qq}`)
PC:window.open(`tencent://message/?uin=${qq}`)
6.微信公众号授权与第三方授权
第三方授权 可以自己加入微信JS-SDK 调起二维码扫描之后进入开放平台的回调
公众号授权 则是直接open或者是直接改变location 到wx的授权地址即可进入公众平台配置的回调
公众号授权一般是一进去就开始调用 如果没有反应 可能是window.open被阻止 改用location.href=...即可
流程皆是 拿到code-换取用户信息-业务逻辑
7.购物车
7.1购物车的选中逻辑与一般选中逻辑不同。
由于会有删除和多端同时操作的可能 所以第一时间更新列表是至关重要的。但是随着列表数据的更新,老土的选中状态由前端自己添加(自生自灭)已经行不通了,因为数据一旦重置这个状态在不做本地存储的情况下是不保留的
用户体验何其差,所以在购物车场景下各大电商都将选中状态保存在了服务端
7.2结算页面的数据半持久化
采用sessionStorage 使的在用户真正离开站点之前这份结算数据真正的能够保存下来
7.3本地离线购物
在用户未登录之时,所有的加入购物车存入列表池localStorage中,等到用户触发登录,一次将本地列表池转至线上。同时清除本地池。用户体验极好!!
7.4项目中购物车经常会绑定到很多模块
以Vue举例,想了很多方案 还是采用了Vuex的存储,这样的联动性最高,机动性也最高
删除,加载,计数等等的操作全部在购物车模块状态完成 对外封装成暴露接口 其他模块只需要关心暴露的接口调用即可。
8.写好的广告突然就不见了?
经常小伙伴写完广告需求之后莫名其妙就发现自己写的东西不见了,在页面上找不到任何踪迹。甚至怀疑自己的代码,不要怀疑,是广告过滤插件在作怪,关了就好了。如果要避免被删,可以在命名时候尽量避开adv等常用广告用词,实在需要提醒的可以选择图片代替文字。
9.nuxt跳坑
9.1nuxt-link 和 router-link
简单来说就是预加载和懒加载的区别,所以不要一口气全怼上nuxt-link 。会预加载资源,影响体验。
9.2provide&inject
严格来说官方文档写的确实说不响应,但是还是给出了对象的响应策略。但是实际使用效果不理想
但是本人使用以下hack做到了响应,


单独的一项一项覆盖可以做到,具体原因不知。但好在可以用,至于网上那些简单的方法都试过了 可能是我的数据嵌套比较深所以没作用。
9.3nuxt大坑
10.vue独立插件中调用router和store
如果是SPA项目 则直接引用暴露给Vue的对象
如果是SSR项目 则在调用的plugin 暴露一个方法 该方法会被调用传入context参数 其中就包含store。 router的话可以灵活实现
11.