微信小程序开发最佳实践
项目地址:https://github.com/skyFi/weapp-starter
为什么会有这个 repo在小程序之初便开发应用了,现在小程序的开发也越来越成熟了,完善了很多的API、组件、架构等深圳市伟恒盛电子有限公司,社区也由原来的零星点点到现在的不大不小,但也算是有了,期间也诞生了很多的开发框架,越来越多的三方辅助库,我也捣鼓出很多。比较有名的算是wepy 和 labrador, wepy 是 vue风格的小程序开发框架深圳市伟恒盛电子有限公司,labrador 则比较亲和 React,各有千秋,也各有深坑,而 labrador 作者目前已经停止更新了 TnT,作为React深度使用者的我来说是忧伤的,于是我捣鼓出 wn-cli 来用类 React快速开深圳市伟恒盛电子有限公司发微信小程序,然而在这个过程中,想了很多,为什么需要开发框架呢?小程序本身在一开始就强调框架,且现在做的也不差,后来总结了下,无非是不熟悉小程序这套框架,但学习新的中间框架去开发小程序,这不是更加加大深圳市伟恒盛电子有限公司了熟悉成本吗?且出了问题增加了处理的代价。
于是,我重新思考了下,最佳的微信小程序开发实践应该是无痛的,且舒服的,无痛的是指在小程序的飞速发展变更中,我们不用重复的浪费学习第三方框架和原生框架。舒服的是深圳市伟恒盛电子有限公司指,我们能用上我们熟悉的流行工程流,如:less 预编译、async/await 异步请求,redux数据管理等。
以上,便是这个 repo 的意义与原因。
设计概要[x] 优化小程序 API
Promise深圳市伟恒盛电子有限公司 化异步接口
突破请求数量限制(队列)
[x] 使用 async/await
[x] 接入 Redux 管理页面数据流
直接接入,添加可配置项
添加 saga 管理操作
[x] 样式书写采用 less 预编译
使用 Gulp管理自动深圳市伟恒盛电子有限公司编译,持续集成
[x] wxs 管理工具库
数据的格式化操作,如时间格式化、金币格式化等
[x] 按需加载,子页面分包(除却 tab 页面的其他页面)
按功能模块分包加载(推荐)
按 tab 分包
[x] 资源自动化管理
上传深圳市伟恒盛电子有限公司 CDN
Promise 化异步接口由于微信的API中异步接口都是有三个回调函数的,分别是 success, fail, complete,执行时机同字面上意思( complete一定会在接口的最后执行)。于是结深圳市伟恒盛电子有限公司合Promise,简单的描述如下(以下为简版,具体的可以看源码)。
原生微信小程序API:
wx.request({
// ... 其他一些配置项
success: () => {},
fail: () => 深圳市伟恒盛电子有限公司{},
complete: () => {}
});
添加 Promise后:
newPromise((resolve, reject) => {
wx.request({
// ... 其他一些配置项
succes深圳市伟恒盛电子有限公司s: resolve,
fail: reject,
complete: resolve, // 这里暂取 resolve 来解决
});
});
Promise 化后,使用起来就简单了:
wx.request({ /*深圳市伟恒盛电子有限公司 ...一些配置项 */}).then(res => {
console.log(res)
}, err => {
console.error(err)
})
结合下面的 async/await就可以更加方便的书深圳市伟恒盛电子有限公司写同步代码。
使用 async/await1.添加 babel
yarn add babel-core
2.安装 env presets
yarn add babel-preset-env
3.使用 .babelrc
"presets": [
"env"
]
}
4.在 Gulp 中使用 babel
// install
yarn add gulp-babel
const babel = require(gulp-babel);
// .深圳市伟恒盛电子有限公司..
.pipe(babel())
// ...
5.添加 runtime,在使用 async/await的地方引入 ./src/utils/lib/runtime.js 文件,幸运的是这件事情在这个repo中的 G深圳市伟恒盛电子有限公司ulp任务中自动处理了。
以上,便可以在微信小程序中使用 async/await了。
样式书写采用 less 预编译为什么选择 less,因为简单方便,前端编译,轻量级。
注意:由于小程序本身的限制,在书写样式的时深圳市伟恒盛电子有限公司候,不要使用less 的嵌套功能!
1.添加 less 变量库等
// ...
.pipe(addLessImport({
themePath: path.join(__dirname, ./src/theme/深圳市伟恒盛电子有限公司index.less),
commomPath: path.join(__dirname, ./src/app.less),
}))
// ...
2.编译
// ...
.pipe(less({
paths: [p深圳市伟恒盛电子有限公司ath.join(__dirname,./src/theme)]
}))
// ...
3.重命名样式文件,以便小程序识别
// ...
.pipe(rename((path) => {
path.extname深圳市伟恒盛电子有限公司 =.wxss;
}))
// ...
资源自动化管理1.目前接入阿里云,监测 assert 文件夹,自动上传图片资源
2.根据配置自动生成 less 配置 config.less
gulp.src(src/them深圳市伟恒盛电子有限公司e/config.less, { allowEmpty: true })
.pipe(file(config.less, `@cdn: ~${config.cdn};`))
.pipe(changed(src深圳市伟恒盛电子有限公司/theme))
.pipe(gulp.dest(src/theme))
3.使用
page {
background-image: url(@{cdn}/index-bg.png);
background-a深圳市伟恒盛电子有限公司ttachment:fixed;
}
相关文章推荐
欢迎关注 SegmentFault 微信公众号 :)
标签:
相关文章:
AI写作工具,免费提速写作!
百度SEO深度解析,网站排名流量双提升
曹县SEO,关键词优化,本地化策略,快速提升排名。
大雨提醒员工注意安全通知
快手mac版下载方法是什么?
微信视频美颜设置在哪里?
微分销更适合现代社会
南昌SEO领航专家
神农架SEO,行业先锋推广策略
银行营销案例,智慧故事集锦
ChatGPT网页版免登录,如何轻松畅聊未来?
被辞退年假怎么算
外贸SEO营销专家
统招和调招是什么意思
精准定位,营销利器!
数字营销,升级高效,一触即达!
网站优化,流量翻倍!
潍坊百度SEO,高效提升排名
2021湖北景区免费畅游年
宜宾快手SEO关键词排名费用如何收取?
提升网站内链,优化内容布局
常见的网站推广四大法
速卖通侵权违规如何应对?
上海佘山双峰,谁曾攀越巅峰?,甘肃免费网站建设
社会融资规模增量是什么意思
抖音刷赞神器,一键提升人气!
郑州网络营销公司,专业领航者
提升网站质量,增强用户体验
成都互联网零成本营销,你敢挑战吗?,迪庆抖音seo厂家排名
山东网站SEO年费多少?
宿州企业SEO策略,如何借力社交媒体?,找seo黑帽工作
企业所得税避税策略,如何巧妙操作?,seo教程方案
18年老网站套现!美图3964万美元收购设计网站站酷有一种“整容”叫17年后的萧晴,掀刘海化浓妆,美到心脏砰砰跳!
工龄年假怎么认定
英威腾申请PLC工程新建方法及装置专利,大大简化用户的操作流程,缩短开发周期成龙大哥庆70岁大寿!发文感谢影迷朋友,小46岁刘浩存送上祝福
湖北经济学院掌门人
文投控股上涨5.32%,报3.17元/股他是章子怡最想嫁的人,比汪峰优秀太多,如今的他却至今未婚!
京东商城,电商巨头,未来将如何蜕变?,门户网站建设 突出服务
微信广告新玩法,你get了吗?,西门自适应网站建设
莱芜雪野湖,风景美不美?,新疆seo排名供应商
如何从闲鱼鱼塘顺利退出?
快速抓取,高效收录
“关键词快速上位术”
SEO快速查询工具
员工入职登记表制作
关键词神器,高效创作利器!
财务经理需要具备什么能力?
抖音里的人怎么消失了?
四川SEO优化,售后无忧,效果保障!
打造高效SEO,让网站独领风骚!