微信小程序的开发范式BeautyWe.js入门详解(3)

对于加载性能要求高的页面(如首页),一般的 Web 开发我们有很多解决方案(如服务端渲染,服务端缓存,SSR 等)。
但是也有一些环境不能使用这种技术(如微信小程序)。

Super Cache 提供了一个中间数据缓存的解决方案:

微信小程序的开发范式BeautyWe.js入门详解

思路:

当你需要获取一个数据的时候,如果有缓存,先把旧的数据给你。

然后再从服务端获取新的数据,刷新缓存。

如果一开始没有缓存,则请求服务端数据,再把数据返回。

下一次请求缓存,从第一步开始。

这种解决方案,舍弃了一点数据的实时性(非第一次请求,只能获取上一次最新数据),大大提高了前端的加载性能。
适合的场景:

数据实时性要求不高。

服务端接口耗时长。

使用

import { BtApp } from '@beautywe/core'; import cache from '@beautywe/plugin-cache'; const app = new BtApp(); app.use(cache({ adapters: [{ key: 'name', data() { return API.fetch('xxx/name'); } }] }));

假设 API.fetch('xxx/name') 是请求服务器接口,返回数据:data_from_server

那么:

app.cache.get('name').then((value) => { // value: 'data_from_server' });

更多的配置,详情看:@beautywe/plugin-cache

日志 Logger

由 @beautywe/logger-plugin 提供的一个轻量的日志处理方案,它支持:

可控的 log level

自定义前缀

日志统一处理

使用

import { BtApp } from '@beautywe/core'; import logger from '@beautywe/plugin-logger'; const page = new BtApp(); page.use(logger({ // options }));

API

page.logger.info('this is info'); page.logger.warn('this is warn'); page.logger.error('this is error'); page.logger.debug('this is debug'); // 输出 // [info] this is info // [warn] this is warn // [error] this is error // [debug] this is debug

Level control

可通过配置来控制哪些 level 该打印:

page.use(logger({ level: 'warn', }));

那么 warn 以上的 log (info, debug)就不会被打印,这种满足于开发和生成环境对 log 的不同需求。

level 等级如下:

Logger.LEVEL = { error: 1, warn: 2, info: 3, debug: 4, };

更多的配置,详情看: @beautywe/plugin-logger

BeautyWe Framework

@beautywe/core 和 @beautywe/plugin-... 给小程序提供了:

开放原生,支持插件化 —— by core

各种插件 —— by plugins

但是,还有很多的开发中实际还会遇到的痛点,是上面两个解决不到的。

如项目的组织、规范、工程化、配置、多环境等等

这些就是,「BeautyWe Framework」要解决的范畴。

它作为一套开箱即用的项目框架,提供了这些功能:

集成 BeautyWe Core

NPM 支持

全局窗口

全局 Page,Component

全局配置文件

多环境开发

Example Pages

正常项目需要的标配:ES2015+,sass,uglify,watch 等

以及我们认为良好的项目规范(eslint,commit log,目录结构等)

也是由于篇幅原因,挑几个有趣的来讲讲,更多的可以看看官方文档:BeautyWe

快速创建

首先安装 @beautywe/cli

$ npm i @beautywe/cli -g

创建应用

$ beautywe new app > appName: my-app > version: 0.0.1 > appid: 123456 > 这样可以么: > { > "appName": "my-app", > "version": "0.0.1", > "appid": "123456" > }

回答几个问题之后,项目就生成了:

my-app ├── gulpfile.js ├── package.json └── src ├── app.js ├── app.json ├── app.scss ├── assets ├── components ├── config ├── examples ├── libs ├── npm ├── pages └── project.config.json

创建页面、组件、插件

页面

主包页面:beautywe new page <path|name>

分包页面:beautywe new page --subpkg <subPackageName> <path|name>

组件

beautywe new component <name>

插件

beautywe new plugin <name>

自定义模板

在 ./.templates 目录中,存放着快速创建命令的创建模板:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4cf29f65f699682ba0e16e36c0ad0734.html