CORE

NpmLicense NPM versionCORE 运行时插件 - 图3 npm bundle size (minified + gzip) Github Actions

@wxa/core是一个非常小巧的包,提供了网络请求、缓存操作、事件总线、Mixins等能力。

core通过新增一个生命周期函数beforeRouteEnter,使得开发者可以快速实现预加载特性。

对于数据量较大的情况,通过提供一个内置的$diff,数据进行diff和flatten操作后再调用setData,减少每次传递的数据量,提高setData性能。✈️

core可以单独使用,但是一般推荐配合@wxa/cli2一起使用,体验更佳😗

特性

  • Fetch 自动防重,自动队列管理的网络请求方法。
  • Router 简洁的跳转API,实现预加载的关键。
  • Eventbus 跨页面,跨组件交互的简单方案。
  • Mixins 混合,跨页面、跨组件复用逻辑。
  • Diff 增量设置数据。
  • Storage 小程序持久化缓存数据。
  • SessionStorage 应用周期内缓存数据。

安装

  1. # 使用npm安装
  2. npm i @wxa/core

用例

  1. import {Page, Lock, Debounce} from '@wxa/core';
  2. // Page装饰器,相当于引入Router、Storage、Fetch等装饰器
  3. @Page
  4. export default class Index {
  5. async onLoad() {
  6. let slogan = await this.foo();
  7. }
  8. async foo() {
  9. return await Promise.resolve('Hey, Async/Await is usabled');
  10. }
  11. @Lock
  12. @Debounce
  13. tap({detail: {value}}) {
  14. return this.$fetch('/log', {value});
  15. }
  16. }