跳至主要內容
lvgl 开发过程

背景

新接了项目,做c++页面的开发,由于之前没有接触过相关的开发,在此记录下过程,同时也纪念下二十天左右的开发时长。大约50%左右的时间用在熟悉lvgl开发,它的渲染过程,语法,API等方面,30%左右的时间用来编译,测试,只有剩下的时间是真正用来编写代码的。在这个过程中,新加的逻辑,对应的代码分支在不断增长,也会让后来的我需要更长的时间理解代码,最后磕磕绊绊,算是完成了任务,但我对代码的整体健壮性,整洁度,可读性都不太满意。

风格

由于时间紧迫,我并没有安装一个合适的代码风格管理插件,原项目也存在风格不统一的情况,tab和空格混用,方法对齐之类,因此我只能在我新加的页面中保持风格统一。保持项目风格的统一其实是一件投入产出比很高的事情,因为这不仅方便代码阅读,也方便后来者接手学习,一个健康的项目尤其需要注意这点。


init-qy大约 4 分钟前端开发lvgl
vue-i18n的一些使用

开始

在使用 vue 编写大型项目时,经常使用的一种国际化方案为 Vue i18n。

其中大部分的使用看官网就够了,这里仅记录一些在实际使用中的问题。

问题

  • t()和 tc()
    这两个方法在大部分情况下展现一致,以至于经常有人混用。事实上,在大部分情况下都应该使用 t(),tc()方法适用于复数,它会让 ‘|’ 无法展示。源码中 tc()有这么一段:

init-qy大约 1 分钟前端开发vue
关于监听浏览器窗口大小的一些记录

过程

由于需要在 vue 项目中使用 echarts 图表,基于 canvas 的 echarts 不能随窗口大小改变而改变。这时就需要监听窗口大小,并实时执行 echarts 的 resize 方法。

向 Window 对象添加事件句柄

mounted() { window.addEventListener('resize', this.resizeHandler) }, destroyed()
{ window.removeEventListener('resize', this.resizeHandler) }, methods:{
resizeHandler(){ // do something } }

init-qy大约 2 分钟前端开发jsvue
根据canvas的手写签名组件

背景

由于业务需求,需要在钉钉小程序上实现一个手写签名的组件,参考了网上微信小程序实现手写签名的写法,结合自身实际需求,将其包装成一个 popup 弹出框的样式,同时参考了钉钉审批的手写签名样式。使用到的依赖有mini-ali-ui的 popup 和 button 组件。同时还有一个本地的图标。

{
  "component": true,
  "usingComponents": {
    "popup": "mini-ali-ui-rpx/es/popup/index",
    "button": "mini-ali-ui-rpx/es/button/index"
  }
}

init-qy大约 3 分钟前端开发小程序钉钉
2
3