# 介绍

轻量级的渐进式小程序开发框架,专注于小程序原生开发,提供更好的工程化、代码复用能力,提高开发效率并改善开发体验。

wxa 是一个AOP框架,通过预编译和运行时动态代理实现对小程序实例方法的拦截、改写、新增等操作。

wxa 是一套完善的微信小程序开发解决方案,通过 Decorator 增强小程序能力,基于 nodejs 工程化小程序开发流程,同时支持类 Vue 单文件开发(SFC)和原生小程序开发!

# 它是如何工作的?

一个wxa项目实际上是由 @wxa/core@wxa/cli2 以及小程序原生能力驱动的应用。通过 cli 为小程序和 npm 仓库搭建了直接沟通的桥梁,使得无数优秀的类库有了直接在小程序上使用的可能。而 @wxa/core 则为小程序开发提供了许多最佳实践。

# 为什么选用它?

# wxa

也许你的项目是为了得到良好的性能、减少因为引入复杂框架导致的潜在项目威胁、或者是为了快速迭代上线,而选用了原生的小程序开发。那么 wxa 将会高度适配你的需求,贴合原生开发,开箱即用的工程化能力,渐进式的搭建你的小程序应用。

# Taro 3.0 & Remax.js & Kbone

如果项目具有跨小程序端和 Web 端 的需求,建议优先考虑这三个框架,其中 Taro 社区运营做的比较好,而 Kbone 属于官方框架,通过内置库(use)能减少项目打包的体积。

# WePY

WePY 是最早开源的小程序框架,在16年末期那个时候小程序还没有推出自定义组件,WePY 通过 template 和编译手段,自己实现了一套组件化的方案,但由于其组件没有独立的运行时实例会导致出现很多诡异的问题,这点从当初无数的 ISSUE 可以看出来。如今官方已经支持自定义组件,且组件化方案已经相对完善的情况下,推荐使用自定义组件。

# 技术特性

  • 原生友好

    • 迁移一个旧项目到wxa只需要几分钟
    • 良好的原生组件开发支持
  • 简洁好用的核心类库@wxa/core

    • Decorator 切面编程,无缝增强
    • Mixins 分离逻辑,复用代码,提高可维护性
    • Plugins 插件机制
    • Redux 全局状态管理方案
    • Promise 化小程序api
    • Eventbus 自定义事件
    • Router 路由跳转
  • 功能齐全的命令行工具@wxa/cli

    • Npm依赖解析
    • 灵活的编译配置
      • Tapable插件机制
      • 可拔插的编译器
    • 多开发模式支持
      • 支持小程序原生开发
      • 支持Vue单文件开发模式
    • 组件良好支持
      • 原生组件
      • 第三方原生组件
    • 调用微信开发者工具
      • 上传代码
      • 预览项目