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

$ tree .templates .templates ├── component │ ├── index.js │ ├── index.json │ ├── index.scss │ └── index.wxml ├── page │ ├── index.js │ ├── index.json │ ├── index.scss │ └── index.wxml └── plugin └── index.js

可以修改里面的模板,来满足项目级别的自定义模板创建。

全局窗口

我们都知道微信小程序是「单窗口」的交互平台,一个页面对应一个窗口。

而在业务开发中,往往会有诸如这种述求:

自定义的 toast 样式

页面底部 copyright

全局的 loading 样式

全局的悬浮控件

......

稍微不优雅的实现可以是分别做成独立的组件,然后每一个页面都引入进来。

这种做法,我们会有很多的重复代码,并且每次新建页面,都要引入一遍,后期维护也会很繁琐。

而「全局窗口」的概念是:希望所有页面之上有一块地方,全局性的逻辑和交互,可以往里面搁。

global-view 组件

这是一个自定义组件,源码在 /src/components/global-view

每个页面的 wxml 只需要在顶层包一层:

<global-view> ... </global-view>

需要全局实现的交互、样式、组件,只需要维护这个组件就足够了。

全局配置文件

在 src/config/ 目录中,可以存放各种全局的配置文件,并且支持以 Node.js 的方式运行。(得益于 Node.js Power 特性)。

如 src/config/logger.js:

const env = process.env.RUN_ENV || 'dev'; const logger = Object.assign({ prefix: 'BeautyWe', level: 'debug', }, { // 开发环境的配置 dev: { level: 'debug', }, // 测试环境的配置 test: { level: 'info', }, // 线上环境的配置 prod: { level: 'warn', }, }[env] || {}); module.exports.logger = logger;

然后我们可以这样读取到 config 内容:

import { logger } from '/config/index'; // logger.level 会根据环境不同而不同。

Beautywe Framework 默认会把 config 集成到 getApp() 的示例中:

getApp().config;

多环境开发

BeautyWe Framework 支持多环境开发,其中预设了三套策略:

dev

test

prod

我们可以通过命令来运行这三个构建策略:

beautywe run dev beautywe run test beautywe run prod

三套环境的差异

Beautywe Framework 源码默认在两方面使用了多环境:

构建任务(gulpfile.js/env/...)

全局配置(src/config/...)

构建任务的差异

构建任务 说明 dev test prod
clean   清除dist文件        
copy   复制资源文件        
scripts   编译JS文件        
sass   编译scss文件        
npm   编译npm文件        
nodejs-power   编译Node.js文件        
watch   监听文件修改        
scripts-min   压缩JS文件        
sass-min   压缩scss文件        
npm-min   压缩npm文件        
image-min   压缩图片文件        
clean-example   清除示例页面        

Node.js Power

Beautywe Framework 的代码有两种运行环境:

Node.js 运行环境,如构建任务等。

微信小程序运行环境,如打包到 dist 文件夹的代码。

运行过程

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

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