项目的一些重难点
前言
3 月进入公司,现在 10 月中了,很快呀,期间做了两个项目,记录下工作上的重难点,以免忘记。
项目一:
重点
- 项目搭建,axios 封装,权限
- 与后台接口请求,请求类型,get/post/put/delete,数据类型,query/body 请求体,编码类型,x-www-form-urlencoded/json
- 前台部署,jenkins 的使用,docker/k8s 的了解
- jsplumb 的使用,可视化流程图
- jquery-ui 拖拽
- 画布滚动、放大缩小,小地图导航,通过定位的方式不去控制画布大小
- 参数自动提示 codemirror
- d3.js 滚动缩放
- vuex 数据的持久化存储 sessionStorage 一个插件
- echarts 的使用,统计流程状态数量
难点
- 手写树结构文件夹分类
- 组件自己调用自己
- 切割组件,在一个组件上的操作影响另一个上的内容
- 通过连线传递参数
- 线上的文字及样式 connect.getOverlay(id).setLabel(str) connect._jsplumb.overlays.canvas.label.cssName
- 动态调整组件大小 自定义指令
- 画布框选内容
- 函数式组件的使用
其他小技巧
- 使用导航做路由跳转时,path 只写到父级,然后通过重定向到目标页面,这样写的好处是只要在父级路由里,导航上的样式都在;
- 调试的方法 console debugger vscode 断点
- 判断数据类型 Object.prototype.toString.call()
- clip-path(部分支持)裁剪元素形状
- ~@代替 src
项目二:
重点
- 甘特图 dhtmlx-gantt 的使用
- gantt 左侧样式调整,不再是树型结构,修改总分结构,左右颜色根据自定义设置进行调整
- gantt 图的封装,根据数据调整 gantt 样式
- sort.js 元素排序
难点
- 动态路由显示,导航组件封装
- store 的封装,使用 getter 来获取 state 值
- 使用 tabview 实现页签跳转,调整与 element 相同样式
- 使用 monaco-editor 实现代码格式化,高亮,自定义主题,参数自定义提示
- 实现组件间拖拽功能,参数拖入编辑器光标位置
- 利用 vue 源码 parseHTML 方法完成表达式正确性校验
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment