天津微信项目总结

1,父组件通知子组件执行某子组件的方法可以使用this.$refs.子组件名.子组件方法

在回到定位位置的例子中就用了这个方法.

2,在roadlive里面,放大缩小按钮重新写入样式的时候,在dev模式正常,然后打包之后就不正常了,写入的样式被原生样式覆盖,后来通过修改

!important

搞定

3,在周边预警中, 有个需求是:0306这个格式的要转化成3月6号,相当于要把时间去掉,刚开始用正则的时候,

time.slice(4, 6).replace(/0/, '') 这种写法导致遇到30的时候,按理是不需要处理的,结果会被处理成3,所以最好写成了

time.slice(4, 6).replace(/^0/, '') 首字符匹配.

4, 在全市天气里面,有一个chart,在电脑和安卓手机都没问题,但是在ios系统的手机上无法正常显示,后来排查之后发现是因为chart的横坐标的时间数据变成了NaN,导致无法渲染.

5, 在ios系统还有一个bug,就是el-select,在其他的平台都没问题,但是在ios系统会弹出软键盘,是因为el-select设置readonly之后,ios无效,后来使用取消focus的方法解决.稍微解决.参见全市天气.

6,

// 下面被注释的这个 在刚开始的时候会和下下面这个坐标相等,几次之后就不等了,我怀疑是js的浮点数的坑

// let startPoint = [this.drwaCenter[0].lon, this.drwaCenter[0].lat]

let startPoint = transformCenter(this.circle.getCenter())

7,在项目中引入了element的input组件,理所当然的需要重新写一个样式,这样就出现一个问题,在不同的场景中,大部分样式都一样,除了宽度,但是我前期在写的时候,把长度写死了,这样导致要到处使用!important来打补丁,正确的做法是应该设置宽度为百分之百,这样在外面只需要设置父元素的宽度就可以了.

8, 在首页的词云中,生成随机颜色,用了个闭包,否则只会生成一种颜色,可能只执行了一次,这里闭包的目的不知道什么意思,但是却生效了.参考stationType.js.

9,vuex的action流程

在manageCinfig.js定义好action和mutation,然后在app.vue里面引入这个actions,注意引入和使用的方式,这样就可以了.

10, 为了动态获取下拉选项,在app.vue中接口调取,存入store,然后需要的地方引入进去,顺带着用了个函数装配成自己需要的数据格式,    其中一个亮点在于动态更新站点级别的操作,详见新增这个功能.关注watch的数组和对象用法.

11, 前端手动分页的实现,不通过后端做分页.参考multipManage.vue.

12 有一个功能,和第10条,刚开始的处理是,在created里面使用nextTick函数,这样有一个问题,就是如果初始页面就需要这个数据的时候,会发生created的时候还没获取到baseData,导致下拉框为空,只有切换到其他的路由再切回来才有用,后来的处理方式是用watch监测baseData对象,如果有变动再处理.这种方式能完美解决异步加载数据先后的问题,在此之前,天津微信的曲线图加载就用了这个方式.很不错

你可能感兴趣的:(天津微信项目总结)