探索、思考、创造、分享

数据驱动、坚持为客户提供有价值的服务和内容

当前位置: 首页 > 小程序资讯_南京小程序开发_南京微信小程序开发制作_南京app开发-安优云 > 小程序制作
微信小程序开发最佳实践
来源:南京小程序开发   发布时间:2021-11-02 16:51:33点击:
最开始小程序的开发和应用,现在小程序的开发越来越成熟,完善了很多API、组件、架构等,社区也从原来的零星到现在是不大不小,也有,很多开发框架诞生期间,三方辅助库越来越多,我也闹了不少。比较有名的是wepyand labrador,wepy是的vue,小程序开发框架的风格,labrador比较友好,React各有千秋,也各有坑labrador,作者已经停止更新TNT了。作为 react 的资深用户,我很难过,所以我正在努力找出解决方案wn-cli使用类React在微信应用快速开发的过程中,我想了很多。为什么我需要开发一个框架?小程序本身一开始就强调框架,现在还不错。后来总结说自己对小程序的框架不熟悉,但是学习新的中级框架开发小程序增加了熟悉的成本?并且这个问题增加了处理成本。

因此,我重新思考,最好的微信小程序开发实践应该是无痛和舒适。无痛是指在小程序的快速发展变化中,我们不必反复浪费学习第三方框架和原生框架。舒适意味着我们可以使用我们熟悉的流行工程流程,比如less预编译、async/await异步请求、Redux数据管理等。

以上就是本次回购的意义和原因。

设计概要
[x] 优化小程序API

Promise异步接口
打破请求(队列)的限制
[x] 使用异步/等待
[x] 访问Redux管理页面数据流

直接访问,添加可配置项
添加到saga管理操作
[x] 文体采用less预编译

使用Gulp管理,自动编译,持续集成
[x]wxs管理工具库

数据格式操作,如时间格式、黄金格式等
[x] 按需加载,子tab页面分包(页面其他页面除外)

按功能模块分包加载(推荐)
按tab分包
PS:小程序原创转包
[x] 资源自动化管理

上传CDN
Promise异步接口
因为微信API的异步接口有3个回调函数,分别是success,fail,complete执行时间(complete必须在接口结束时执行)。所以是一个组合Promise简单说明如下:(以下为简化版,详见源码)

原生微信小程序API:

wx.request({
  //... other configuration items
  success: () => {},
  fail: () => {},
  complete: () => {}
});
添加到Promise之后:

new Promise((resolve, reject) => {
  wx.request({
    //... other configuration items
    success: resolve,
    fail: reject,
    Complete: resolve, // resolve is used here temporarily
  });
});
Promise这个用起来很简单

wx.request ({/ *... Some configuration items * /}). Then (RES = >){
  console.log(res)
}, err => {
  console.error(err)
})
结合async/await,可以更方便的写同步代码

使用异步/等待
添加到babel:
yarn add babel-core
安装env预设
yarn add babel-preset-env
用.babelrc
{
  "presets": [
    "env"
  ]
}
留Gulp在 使用babel
// install
yarn add gulp-babel

const babel = require('gulp-babel');
// ...
.pipe(babel())
// ...
添加到runtime,在使用的async/await地方引入./src/utils/lib/runtime.js文件。幸运的是,它在这个 repoGulp任务中被自动处理。
上面,你可以在微信小程序中使用它,为时async/await已晚。

文体采用less预编译
为什么less因为简单方便,前端编译,轻量级。

注意:由于小程序本身的限制,在书写风格上不要使用它less的嵌套功能!

添加较少变量库等
// ...
.pipe(addLessImport({
      themePath: path.join(__dirname, './src/theme/index.less'),
      commomPath: path.join(__dirname, './src/app.less'),
    }))
// ...
编译
// ...
.pipe(less({
      paths: [path.join(__dirname, './src/theme')]
    }))
// ...
重命名样式文件让小程序识别
// ...
  .pipe(rename((path) => {
    path.extname = '.wxss';
  }))
// ...
资源自动化管理
目前连接阿里云,监控assert文件夹,自动上传图片资源
根据配置自动生成较少的配置config.less
gulp.src('src/theme/config.less', { allowEmpty: true })
    .pipe(file('config.less', `@cdn: ~'${config.cdn}';`))
    .pipe(changed('src/theme'))
    .pipe(gulp.dest('src/theme'))

page {
  background-image: url('@{cdn}/index-bg.png');
  • 上一篇:微信小程序使用goeasy实现websocket实时通讯
  • 下一篇:返回列表
  • 版权备注
    最新资讯
    2021-11-02
    微信小程序开发最佳实践
    最开始小程序的开发和应用,现在小程序的开发越来越成熟,完善了很多API、组件、架构等,社区也从原来的零星到现在是不大不...
    2021-11-02
    微信小程序使用goeasy实现websocket实时通讯
    无需下载安装,可在微信好友、微信群之间快速转发。用户只需扫码或点击微信即可立即运行。拥有类似app的用户体验,让微信a...
    2021-11-02
    微信小程序表单提交复选框无法取值
    开始学小程序,这个ChecBox值弄了一个下午,百度没有靠谱的回答论坛问大神 微信小程序表单提交复选框取不了值 <label cla...
    2021-10-22
    微信公众号和视频号如何流量融合?
    最近微信公众号和视频号同时咨询的比较多。今天给大家分享下,微信公众号和微信视频号如何进行流量互通融合。 1,视频号...
    2021-10-22
    微信公众号和视频号如何流量融合?
    最近微信公众号和视频号同时咨询的比较多。今天给大家分享下,微信公众号和微信视频号如何进行流量互通融合。 1,视频号...
    随机资讯
    2020-02-03
    南京小程序开发解析开发小程序商城的优势
    中小型新项目运营大城市问世后,很多公司已经运用中小型新项目运营大城市找寻大量的客户资料,因此中小型新项目运营大城市...
    2020-01-20
    南京小程序开发是怎么做商城小程序培养用户的几个技巧
    伴随着挪动互联网发展,很多企业期望根据开发设计自身的中小型企业程序流程,使自身的商品在中小型程序流程市场销售中,较大...
    2020-01-20
    南京小程序开发定做个小程序要多少钱
    处在it行业的人们想来对小程序的受欢迎之势早已有一定的掌握了。人们时时刻刻都能体会到它的受欢迎,跳一跳霸屏的那时候...
    2020-02-03
    南京小程序开发呼吁大家不要忽略小程序的新功能
    微信小程序不断创新和发展趋势,每一次升级,微信小程序常常让我们产生不一样的幸福。南京小程序开发呼吁人们应当更为关心...
    2020-02-13
    基于腾讯云对象存储的微信小程序图像上传功能南京小程序为您分享
    在使用腾讯云对象存储之前,该公司一直在使用传统的FTP上传模式。随着用户数量的增加,FTP暴露了越来越多的问题。1.传输效...