All Projects → FaureWu → ztaro

FaureWu / ztaro

Licence: MIT license
一套基于taro, zoro的完整的微信小程序及h5开发解决方案

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to ztaro

gangxiaoer-taro
博雅塔小程序,基于Taro的版本,同步发布百度小程序,支付宝小程序。
Stars: ✭ 16 (-56.76%)
Mutual labels:  weapp, h5, taro
weapp-clover
由零打造的,基于taro,zoro的电商小程序实战项目
Stars: ✭ 77 (+108.11%)
Mutual labels:  taro, zoro
Gitter
Gitter for GitHub - 可能是目前颜值最高的GitHub微信小程序客户端
Stars: ✭ 3,555 (+9508.11%)
Mutual labels:  weapp, taro
taro-tax
taro版个税小程序
Stars: ✭ 12 (-67.57%)
Mutual labels:  h5, taro
Taro-v2ex-weapp
awesome v2ex weapp 😎 目前支持微信小程序、支付宝小程序、h5
Stars: ✭ 25 (-32.43%)
Mutual labels:  weapp, taro
Gitter
Gitter for GitHub - 可能是目前颜值最高的GitHub微信小程序客户端
Stars: ✭ 3,498 (+9354.05%)
Mutual labels:  weapp, taro
taro-icons
基于 Taro 的小程序图标库
Stars: ✭ 53 (+43.24%)
Mutual labels:  weapp, taro
weapp wechat miniapp sdk
一个封装了微信小程序服务端接口的SDK
Stars: ✭ 102 (+175.68%)
Mutual labels:  weapp
egg-weapp-sdk
Egg的微信小程序登录会话管理SDK
Stars: ✭ 111 (+200%)
Mutual labels:  weapp
ChineseBQB-client
🤣 开源表情包小程序
Stars: ✭ 81 (+118.92%)
Mutual labels:  taro
taro-template
可用于生产环境的taro项目模版,技术栈:taro + taro-ui + typescript + dva / mobx + sass,无需过多关注项目配置,预置功能包括但不限于页面/组件/store/service模版一键生成/编译自动生成路由列表和组件入口/代码规范强制检查/请求拦截封装/小程序CI等,实现多端项目的高效快速开发。目前已有1.x / 2.x / 3.x 版本。
Stars: ✭ 59 (+59.46%)
Mutual labels:  taro
html-page-call-native
❤️ HTML5 call native app
Stars: ✭ 33 (-10.81%)
Mutual labels:  h5
taroCloud
记日常、GitHub trending资讯小程序 taro-hooks + rematch+云开发
Stars: ✭ 25 (-32.43%)
Mutual labels:  taro
wx-statuslayout
微信小程序页面状态切换组件
Stars: ✭ 24 (-35.14%)
Mutual labels:  weapp
dropDownBoxFilter
微信小程序之下拉菜单的三级筛选框
Stars: ✭ 47 (+27.03%)
Mutual labels:  weapp
mobx-wxapp
在小程序中使用mobx
Stars: ✭ 54 (+45.95%)
Mutual labels:  weapp
we-rich
HTML转微信富文本节点, we just need rich, no text.
Stars: ✭ 36 (-2.7%)
Mutual labels:  weapp
my-taro
taro体验开发小程序
Stars: ✭ 14 (-62.16%)
Mutual labels:  taro
mall-app
youlai-mall 微信小程序/H5/Android/iOS 移动应用端,uni-app终极跨平台前端框架。
Stars: ✭ 75 (+102.7%)
Mutual labels:  weapp
Taro-sign
Taro 开发的 思政教育签到小程序
Stars: ✭ 27 (-27.03%)
Mutual labels:  taro

ztaro

结合小程序框架taro,状态管理库zoro,微信小程序开发,h5开发实践方案

教程

演示

特性

在taro框架的基础上集成了如下简易开发特性,如需了解taro框架,请移步taro官方网站

  • redux轻量级框架zoro,用法类似与dva,极易上手
  • 基于expressfaker集成了小程序端,h5端简易数据模拟方案,实现真正的前后端分离式开发
  • 扩展request接口,支持restful api冒号参数
  • 提供完善的错误处理机制
  • 结合真实生产的环境简易配置方案

如何安装

$ npm install -g @tarojs/cli
$ npm install
or
$ yarn global add @tarojs/cli
$ yarn

开发前准备

本脚手架中config/config.js中的配置都是不可用的配置,需要在启动前,修改为你对应的配置

  • server 对应不同环境下的api服务器地址
  • oss 对应不同环境下的阿里云oss配置

图片资源上传阿里云oss服务器

由于小程序包大小限制,为了节省空间,我们通常会将图片资源上传到远程服务器,目前taro的plugin还不支持自定义, 因此我们在编译成微信小程序引入gulp执行上传任务,插件地址gulp-alioss-upload

在编译成h5过程中,我们利用webpack的loader机制,编写了相同功能的alioss-upload-loader

以上两个工具的配置一致,都在config/config.js中配置

module.export = {
  oss: {
    // BUILD_ENV === dev环境下的阿里云配置
    dev: {
      accessKeyId: '这里是dev环境阿里云oss key',
      accessKeySecret: '这里是dev阿里云oss secrect',
      endpoint: 'https://**********.aliyuncs.com',
      region: '*********',
      bucket: '这里是dev阿里云oss bucket',
    },
    // BUILD_ENV === prod环境下的阿里云配置
    prod: {
      accessKeyId: '这里是prod环境阿里云oss key',
      accessKeySecret: '这里是prod阿里云oss secrect',
      endpoint: 'https://**********.aliyuncs.com',
      region: '*********',
      bucket: '这里是prod阿里云oss bucket',
    },
    path: 'src/assets/', // 这里指定oss资源文件根目录
    prefix: '@oss', // 指定需要上传资源的前坠同时也是资源根路径的别名
    formats: ['png', 'jpeg', 'jpg', 'svg'], // 指定可上传的资源格式
  },

在js中引用

const image = '@oss/logo.jpeg'

在样式中引用

.app {
  background-image: url("@oss/logo.jpeg")
}

在json中引用

{
  "logo": "@oss/logo.jpeg"
}

最终都会被替换成上传后的真实阿里云oss地址,不支持通过require或者import导入资源

import logo from '@oss/logo.jpeg' // 该写法错误,不支持

如何开发

在前后端分离的应用中,往往我们开始编写前端界面及逻辑时,后台的api接口仅仅提供了swaggar文件,可能还没编写代码,可能还没部署到开发环境,这样我们的工作便会处处受困于后台,因此我们可以在本地启动数据模拟服务,编写简易的后台api返回

$ npm run mock:weapp # 启动小程序端
$ npm run mock:h5 # 启动h5端

or

$ yarn mock:weapp # 启动小程序端
$ yarn mock:h5 # 启动h5端

以上命令会启动app,并且在本地启动mock服务127.0.0.1:3000,我们只需在mock目录下编写数据mock,在src中编写界面及逻辑即可

值得注意的是在mock模式下,我们需要配置project.config.json文件下的urlCheck: false


当我们某些模块编写完成,后台api也已就绪,需要进行联调阶段时,首先我们改写config/config.js 文件,配置dev环境下的api服务器地址

module.exports = {
  server: {
    dev: 'https://devapiserver',
    ...
  },
  ...
}

需要在微信后台配置相关安全域名,或者临时性的修改urlCheck: false

执行如下命令,启动开发联调环境

$ npm run dev:weapp # 启动小程序端
$ npm run dev:h5 # 启动h5端

or

$ yarn dev:weapp # 启动小程序端
$ yarn dev:h5 # 启动h5端

执行以上命令不会在本地启动mock服务器,直接连接dev环境服务器


如何编写MOCK

所有的mock api服务均放在mock目录下,该目录下的所有js将会自动注册到express服务器中,无需额外的引入

mock服务导出格式,参考mock/todos.js

module.exports = {
  'GET /v1/todos': getTodos,
  'POST /v1/todo': addTodo,
  'DELETE /v1/todo/:id': deleteTodo,
  'GET /v1/todo/httpStatusError': httpStatusError,
  'GET /v1/todo/serviceError': serviceError,
}

数据模拟查看faker文档

api编写参考express

如何打包

我们需要在产品开发完成后打包dev环境给测试,可执行如下命令

$ npm run build:weapp-dev # 打包dev环境小程序包
$ npm run build:h5-dev # 打包dev环境h5包

or

$ yarn build:weapp-dev # 打包dev环境小程序包
$ yarn build:h5-dev # 打包dev环境h5包

当测试完成准备上线,可执行如下打包命令

$ npm run build:weapp # 打包dev环境小程序包
$ npm run build:h5 # 打包dev环境h5包

or

$ yarn build:weapp # 打包dev环境小程序包
$ yarn build:h5 # 打包dev环境h5包

最终打包目录在dist文件夹中

request异步请求的使用

该项目中src/utils/request.js中对Taro.request进行了一次封装,增强了部分特性,使用方法同Taro.request

  • 支持冒号参数替换
// request参数举例
request({
  url: '/api/v1/todo/:id',
  data: {
    id: '1234343',
  }
})
  • 捕获request异步请求错误,并抛到全局中处理,可以更好的处理错误而不阻断其他业务的进行

推荐所有的请求都走request,否则异步错误无法捕获

UI组件框架

未引入UI组件框架,如需要,请自行引入,可用taro-ui

数据处理框架zoro

zoro框架的使用这里不在描述,自行查看文档zoro

本方案中以todos的demo演示了整体框架使用方法

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].