小程序实战分享

前面的同事将小程序的基础知识讲的很详细了,对于一个初学者看完开发者文档,熟悉开发者工具之后,下一步就是开发小程序,进行小程序实战。也就是今天我要分享的内容。

小程序从设计稿到发版,中间需要经过哪些步骤,有哪些注意事项,一个页面是如何划分功能模块开发出来的,以及怎样使用开发者工具来提高我们的开发效率这三方面来讲,我们结合自己的经验,给大家做个介绍, 仅供大家参考。

一、小程序从设计稿到发版

1.划分页面

当我们拿到设计图之后,第一步要分析设计图总共有多少页面,各个页面的流程关系,查看页面是否有缺失。
都理顺之后,将页面整理出来,在app.json的pages属性中配置;若有Tab页,将其配置到tabBar里。(展示图片)比如像这种设计图,tabBar小程序所特有的属性配置,这里需要注意一下。

2.链接页面
在app.json里将所有的页面都配置好后,小程序很智能化,也帮我们将所有的页面都生成好了, 通过链接或者按钮串联起来。不需要编任何页面样式和逻辑,只要页面能正常跳转就行。这样一个简易的小程序demo成型了,目的在于可以快速试错。体验整个项目的流程,如果感觉流程有问题,可以马上返工修改,如果是业务问题,这个时候提出也比较适宜。页面流程没有问题了,把页面间传递的参数固定下来,分别写入跳转链接和onLoad参数中。(要不要展示)。还有一个好处,其实就可以进行任务划分,将一些关联性比较强的页面分给一个人做。

3.搭建基础设施
小程序的基础设施包括了基础样式库,passport 登录、api请求、HTTP封装、工具类库、和开发公共组件。
根据设计稿的需要,如果小程序设计风格比较统一,我们可以编写通用的样式,引入到app.wxss文件中,app.wxss里的样式是被所有页面共用。
passport可以自己开发,也可以直接使用专哥封装好的SDK。专哥对passport登录封装了两种SDK, 一种是业务需要开启游客模式、有登录界面的,一种是只需要微信授权无登录界面的。
对于api请求,建议将所有api请求集中存放,方便接口复用和统一管理,减轻业务面的复杂度。对http请求推荐使用Promise编写异步请求,可以避免回调函数嵌套过深造成的 “地狱回调”。
我们可以编写一些通用的工具类或者方法,比如日期格式化,字符串校验等。供大家使用。对于多页面复用较多的功能模块, 我们封装为组件,供多页面使用,降低开发成本。

4.编写静态页面
依照设计稿,完成各页面的样式和功能。我们可以先用mock数据渲染页面。

5.后端联调
后台接口OK了,我们就可以进行联调,以及一些优化调整工作。
注意:如果小程序有支付功能,务必要提前申请商户号。

6.测试 发版
自测后,首先发布体验版内部测试。体验版测试通过后,向微信提审。
审核通过后,再测试一遍,测试通过后,正式发版上线。(小程序管理平台操作)

我们拿到设计稿后先划分页面,做简易demo做任务划分、搭建基础设施、mock渲染页面、接口联调、到测试发版,这是我们的一个开发流程,那么对于一个小程序页面是怎样开发出来的呢?

二、 页面实战 - 星能量公益排行榜
展示设计图 首页的
拿到这个设计图,我们大致可以了解到这个页面包含首页开屏、 弹幕、弹窗、tab切换、日期选择器、支付、明星列表这些功能模块。
相对而言支付功能在多个页面中都存在,我们就可以将它们做成组件,以供多页面重复使用。

图:我想把页面分为 header content footer

header: 弹幕
content: 首页开屏、活动弹窗、tab切换、日期选择器、明星列表、支付、消息提示框
footer: buttons

component: 支付组件
现在就算把支付功能抽象成组件,其它功能也比较复杂,整个页面比较重,这里我考虑将页面拆分为多个模块。
页面 template: 首页开屏、活动弹窗、消息提示框
header: 弹幕
content : tab切换、日期选择器、明星列表
footer: buttons

component: 支付组件
template: 首页开屏、活动弹窗、消息提示框

  1. tempalte 的定义和使用
    演示:首页.wxml文件 打开开发者工具 展示
    如何定义一个模版片段,然后在不同的地方调用呢?
    使用name属性作为模块的名字,然后在 <template />内定义代码片段

模块定义好了,我们想使用模块,在需要的页面或者模块的头部 ,通过<import />标签引入
使用is属性,声明需要的使用的模块,然后将模块所需要的data传入。说到数据传入 这里可以使用es6的新语法 简写和展开运算符

模版拥有自己的作用域,
c>> b. b>>a. 但是 c>>a 不可以

  1. 支付组件定义和使用

创建自定义组件类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成。要编写一个自定义组件,首先需要在 json 文件中进行自定义组件声明 (将component字段设为 true ),同时还要在wxml文件中编写组件模块,在wxss文件中加入组件样式,它们的写法与页面的写法类似。
在自定义组件的js文件中,需要使用component()来注册组件,properties用于接收外部传入的数据,data用于存放组件的内部数据,methods组件的自定方法。

组件开发好了,如何使用自定义组件呢,首先要在页面的json文件中进行引用声明,使用的组件名是什么,组件路径是什么,然后,在index.js页面的data属性中新增支付组件参数 pay ,这里的支付组件需要的四个参数,分别是 是否显示支付弹窗 明星的ID和姓名 以及项目的uuid,
接下来,在的index.wxml 中就可以像使用基础组件一样使用pay组件, 并监听组件的 paid 支付成功事件。onPaid回调韩式的参数是一个对象,拿到订单相关的参数,自行决定如何跳转。

4.模版与组件的区别

说完了tempalte 和 component ,我们来看看它们的区别,tempalte基本上做纯展示,只需要接受数据渲染就好,component是个独立的功能模块,包含了逻辑业务的处理,我们可以把component当成一个黑盒子,只要给它所需要的参数,它自行处理后,就能返回我们想要的东西,从使用组件来说,不需要关心它的内部实现。

模版是定义一个带有自己样式的代码片段 ,不涉及业务逻辑
组件是一个独立的功能模块,可以把它当成一个黑盒,不用管它都处理了哪些事情,只需要知道 你给它一个参数,就能到你想要的结果。

三、擅用微信开发者工具

工欲善其事 必先利其器,既然我们实战开发小程序,当然要用好微信开发者工具,用好开发工具可以提高我们的工作效率。
微信开发者工具主要分为五大部分 菜单 工具栏 模拟器 编辑器 和调试器

工具栏里的右上角 有对模拟器 编辑器 调试器显示的控制按钮,用起来很方便,中间部分可以自定义编译,比如说定义详情页,可以设置启动参数,进入场景,这个功能的好处就避免了,很多时候我们开发多级页面,每次保存都会刷新回到首页,再层层点击进去看效果这样的问题。

预览功能 可以通过扫描 直接看页面效果,很方便的一个功能,
当我们开发登录或者离线存储这些功能的时候,可以充分派上清缓存的功能
当我开发告一段落,我们可以直接在开发者工具上 点击上传。提交代码为体验版 进行测试
详情这个功能也很赞,展开详情,我们可以清楚的知道小程序的appid 本地代码的大小 以及项目的一些设置 和 域名信息
调试工具中 appData特别好用,appdata实时地反映项目数据情况 在这编辑数据,可以及时地反馈到界面上。
随着开发者工具不断的更新优化,在开发者工具上开发调试的体验还可以,建议大家熟练的使用开发者工具来提高我们的开发效率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容