简化 vuex 的状态管理方案

在 vuejs 相关项目开发过程中,我们常常会使用 vuex 作为状态管理工具, 整个组件的状态做为单向数据流的模式管理。

事实上,在实际的使用中 vuex 可以说是相当繁琐的,每一次的需求增加需要增加 Mutations-TypeActionMutations, 为了简化这一操作,我们可以将 mutations 和 action 合并,简化流程如下:

在此种思想的引导下, muse-model 诞生了,以简单优雅的方式完成整个项目的状态管理。

关于开源许可协议

作为开源事业的小小贡献者,之前对于开源协议一直都不怎么在意,跟着前辈们用着MIT,并不了解开源协议的意义。直到前几天看到 react 开源协议的改变引起的轩然大波,大厂们纷纷开始宣布不再使用 react, 吓得我赶紧去翻了翻相关资料。

移动端页面多环境运行解决方案

在移动端的页面开发中,一个页面往往会在多个地方运行,例如:嵌入在app内、微信、其它浏览器….. ,在这些地方运行,很多功能的实现会采用不同方式,例如分享功能,在app中可能会调用native(android/ios)提供的接口,微信端会调用微信的sdk,这是两种完全不同的实现方式,但是对外的调用方式和接收参数、返回参数一致。

这时需要一个中间层(runtime),对外调用runtime中的方法,runtime中区分运行环境来调用不同的实现方式。

移动web 1px边框解决方案

在移动端web页面开发中,为了使css中使用的尺寸与设计稿一致,通常会采用 rem 单位配合 lib-flexible 来实现移动端的适配,在IOS设备上 flexible.js 会根据设备的分辨率动态的调整 viewportwidthscale 来达到目的。

但是,现在很多的安卓手机也是高分辨率的屏幕,有些1px边框的按钮和列表会显得特别粗,flexible.js 只处理了IOS的手机,所以安卓手机需要我们自己处理。

关于拖延症的一些事

拖延症是当代人一种常见的绝症,很多事情推在眼前,空白的文件、散乱的衣橱、或者一个要打的电话,明明内心焦急不安,却还是一边咬着手指甲,一边发呆拖延时间。

唐悠悠《爱情公寓》

关于 Vue Mixin 和 Directive 的使用

使用 vue 组件化开发已经很长时间,组件化的意义就是把在多个页面中共有的逻辑(显示/功能)封装,在多个页面或者多个项目中重复使用以提高开发效率。

但组件中共有的逻辑如何重用呢?例如: 我们再开发一个 popover 组件时都会有如下功能:

  1. 点击外部时关闭弹出
  2. 滚动条滚动或者窗口大小发生改变时重新定位

这里我们需要监听三个事件,一个是外部被点击事件,滚动条滚动,窗口大小发生改变,这些功能都很可能在别的组件中被使用,我们要将这些共有功能封装起来。

Vue 中提供了 mixin(混合) 和 directive 两种方式用于封装多个组件内的共有功能。

,