CORE
@wxa/core
是一个非常小巧的包,提供了网络请求、缓存操作、事件总线、Mixins等能力。
core
通过新增一个生命周期函数beforeRouteEnter
,使得开发者可以快速实现预加载特性。
对于数据量较大的情况,通过提供一个内置的$diff
,数据进行diff和flatten操作后再调用setData
,减少每次传递的数据量,提高setData
性能。✈️
core
可以单独使用,但是一般推荐配合@wxa/cli2
一起使用,体验更佳😗
特性
- ✅ Fetch 自动防重,自动队列管理的网络请求方法。
- ✅ Router 简洁的跳转API,实现预加载的关键。
- ✅ Eventbus 跨页面,跨组件交互的简单方案。
- ✅ Mixins 混合,跨页面、跨组件复用逻辑。
- ✅ Diff 增量设置数据。
- ✅ Storage 小程序持久化缓存数据。
- ✅ SessionStorage 应用周期内缓存数据。
安装
# 使用npm安装
npm i @wxa/core
用例
import {Page, Lock, Debounce} from '@wxa/core';
// Page装饰器,相当于引入Router、Storage、Fetch等装饰器
@Page
export default class Index {
async onLoad() {
let slogan = await this.foo();
}
async foo() {
return await Promise.resolve('Hey, Async/Await is usabled');
}
@Lock
@Debounce
tap({detail: {value}}) {
return this.$fetch('/log', {value});
}
}