Skip to main content

Loading 组件优化思路

· One min read
TankNee
Memocast core developer

让 Loading 组件更加灵动#

Quasar 的 Loading 对象中有一个参数名为 delay ,这个值代表如果在 delay 毫秒内接收到 Loading.hide() 那么就不去渲染 Loading 组件,用户就不会看到加载的过程。以前我都是直接简单粗暴地在耗时操作之前加上 Loading.show(),耗时操作结束了就加上 Loading.hide() ,很简单的逻辑,但是最终的效果不好,因为每一次都会渲染 Loading 样式,让用户觉得加载速度太慢,会觉得卡顿,而使用 delay 之后,小的数据加载量基本上不会有加载动画,在视觉上提升了应用流畅程度。 然后我在自己的加载组件中简单的实现了一下,效果确实不错。

<template>  <q-inner-loading :showing="isLoading">    <q-spinner-ball style="color:var(--themeColor)" size="6em" />  </q-inner-loading></template>
<script>export default {  name: 'Loading',  props: {    visible: Boolean,    delay: {      type: Number,      default: 200    }  },  data () {    return {      isLoading: false,      timer: null    }  },  watch: {    visible (val) {      if (val) {        this.timer = setTimeout(() => {          this.isLoading = true        }, this.delay)      } else {        clearTimeout(this.timer)        this.isLoading = false      }    }  }}</script>
<style scoped></style>

实现的办法也比较简单,就是监听组件 visible 值得变化,这个值由上一层的组件提供或者修改,当这个值变化的时候启动一个定时器,如果在定时器时间内收到了取消值,那么就是直接停止计时,也就是组织组件未来的渲染。

欢迎来到 Memocast 的开发博客

· One min read
TankNee
Memocast core developer

Quasar + Electron + Muya + Monaco + WizNote = ?#

此处应有一段 Slogon

不知道你是否有和我一样的烦恼,在用 Typora 的时候想要有在线笔记的能力,用在线笔记的时候能有 Typora 一样的编辑能力,虽然说 Typora 和很多的第三方应用集成之后也能达到很棒的写作效率,例如结合 Git 进行笔记版本管理,结合 PicGo 实现笔记图片管理,或者是使用 Typora 作为笔记编辑器,编辑为知笔记。但这些还是太割裂了,不是吗?如果有得选,谁不想要一个可以 All in 的笔记软件呢?

于是,Memocast 诞生了。

写代码的时候会疑惑,会怀疑自己,为什么要花这么多时间去做一个笔记软件,为知官方甚至已经推出了新的编辑器 WizLite ,其对 Markdown 的支持已经完全跟上了主流水平,甚至有所超出,而且公司成建制的开发能力必定要强于我个人,那为什么还要做,还要投入时间。

想了很多次,最终答案大概就是我可以,我想试试,我想要更强的掌控能力,我希望整个记录的流程都掌握在我自己手上。

人生难得几回创造的热情,故事便开始了。