客户端转小程序之入门一

最近团队H5开发资源紧张,客户端开发同学资源略有闲置,所以决定让客户端同学也了解和熟悉小程序开发/快应用/小程序开发,以作后备。

这一系列的分享主要是引导有兴趣的同学能够快速入门小程序开发,不会有太深入的技术研究,目的是让客户端同学可以快速的进行小程序开发工作。

1.概要

    1.1 开发文档:

        官方的开发文档是最好的教程,我们接下来的所有知识点都是基于官方的开发文档的,所以实际开发过程中,随时翻阅开发文档很重要,不管是技术方面,还是合规方面,以及小程序的特殊要求,都可以在官方文档中找到。

        官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/index.html?t=18111920

1.2 微信开发管理后台

    1.2.1 地址

        https://mp.weixin.qq.com

    1.2.2 账号

        绑定在公众号下面的小程序账号也需要注册,每个小程序账号都必须要有一个管理员,小程序后台需要录入管理员的身份证信息,每个身份证下面最多只能做5个小程序的管理员。

    1.2.3 功能

        这里只介绍开发管理功能和设置功能,其他的功能暂时与技术开发无关。

        开发管理:这里主要用来进行上线版本的管理,包括已上线/未通过审核/审核中/已上传的版本

        设置:

             a.基本设置:想要新建一个可上线的小程序工程,则必须要有AppID,只有完善了小程序的基本信息,才能生成AppID

            b.开发设置:完成基本设置之后,就可以开到AppID了。除此以外,小程序能访问的服务器域名(Api调用域名)、业务域名(H5的域名)需要在此进行配置,否则,真机中的小程序都将报错。同时,这些域名的修改每月都有次数限制。

1.3 开发工具:

       这里只介绍微信官方提供的开发工具,当然市面上可以用来进行微信小程序开发的工具有很多,这里就不介绍了,有兴趣的同学可以自己百度(这里建议不要Google,中国的东西找百度还是靠谱些)

       官方开发工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

       1.3.1 新建工程

            a.项目目录:小程序本地所在的文件夹

            b.AppID:申请了小程序开发账号之后,在微信小程序开发管理后台可以看到AppID

            c.项目名称:尽量起名为上线时的名称

        1.3.2 模拟器

            微信小程序的模拟器应该是最好用的,相较于快应用必须要使用真机来搭建模拟器环境的方案,小程序的模拟器甩了快应用十八条街都不止。iOS的模拟器还可以,但是编译速度远比不上小程序的,Android的模拟器就更加不用提了,所以使用微信小程序的模拟器进行初期开发,是一种很好的选择。

        1.3.3 编辑器与调试器

            做过客户端开发的同学应该不会太习惯小程序的这套逻辑,代码coding完成后,如果需要调试,是需要进入到调试器中才能进行调试,实际表现上,编译器中的代码是编译之前的,调试器中的代码是编译之后的,所以会存在两份几乎一样的代码,初期不熟悉的时候容易把两者弄混,导致出错。

            调试器的下方是常见的打印区,熟悉H5开发的同学会觉得这个界面非常的亲切。

        1.3.4 编译与预览

            保存功能会默认进行编译,所以想要重新编译新的代码,使用保存功能即可,点击编译可。

            预览是指开发工具会生成一个小程序临时二维码,只有被加入到了开发者计划中的微信用户,才可通过扫描该二维码打开开发中的小程序,只要是在真机中运行的小程序只支持https,模拟器中可以选择是否支持http。

        1.3.5 详情

            最右边的详情按钮是个很重要的按钮,当前开发的小程序的基本信息都在里面了。

            小程序包最大只能为2M,小游戏包最大只能为4M,开发时要时刻注意,点击详情按钮刻意随时查看包的大小。

            此处可以设置模拟器中是否支持http方式,是否校验服务器域名和业务域名。

2.开发基本知识

            这一节主要介绍开发所需的基础知识。

       2.1 项目工程结构

            pages:主要用来存放页面文件的文件夹。

            utils:主要用来存放一些工具类的文件夹,这里面一般只有js文件。

            app.js:这是小程序的入口,iOS可以类比为AppDelegate(UIApplication)的对象,Android可以类比为Application

            app.json:这是小程序的页面相关的配置文件,比如页面路径,导航的颜色等。

            app.wxss:这是一个总的样式文件,可以理解为样式的基类。

            project.config.json:这是小程序的配置文件,类似于iOS的info.plist,Android的build.gradle

            assets:这个文件夹本身是不存在的,不过页面文件的图片需要存放,所以我这里新建了这个图片文件的文件夹,专门用来存放图片,这里按照iOS的风格起名为assets。

    2.2 四件套

            小程序开发和H5开发很相似,包括实际开发中用的语言和技术,大部分和H5开发是重叠的,还有一部分是微信团队在H5开发的基础上进行了二次封装。所以小程序开发的基础是H5的三件套:js,css,xml。微信进行了二次封装之后,变成了js,wxss,wxml,同时,微信在此基础上,添加了一个json文件,接下来会详细介绍这四个文件的作用。

        js:这里主要是页面的逻辑,类似于Android的activity文件,iOS的VC文件

        json:这个文件的主要作用是当前页面的配置,主要是针对导航的,比如导航的标题,颜色等

        wxml:这个文件主要是页面的结构,Android:fragment;iOS:IB文件

        wxss:这个文件主要是页面元素的样式的描述,同样的,Android:fragment;iOS:IB文件

    2.3 常见的基础知识

        2.3.1 数据类型

            微信小程序开发中有三种数据类型,分别是:

            const:全局变量,不开修改,一般用于声明工具类

            var:全局变量,可修改

            let:局部变量,可修改

        2.3.2 文件的引用

            a.在相同文件夹中引用:const file = require("file.js")

            b.在不同文件夹中引用:const file = require("../util/file.js"),这里的../ 表示当前文件夹的上一级文件夹

        2.3.3 方法的调用

            2.3.3.1 同一js文件中的方法调用:

                a.单例类:functionName()

                b.普通类:this.functionName()

        2.3.3.2 不同js文件中的方法调用:

                a.单例类:需要在单例类中添加如下代码:

                    module.exports = {

                        publicFunctionName1:privateFunctionName1,

                        publicFunctionName2:privateFunctionName2

                    }

                b.普通类:一般普通类的js方法不对外开放

        2.3.4 this

            page类中的this可以理解为当前js对象,类似于iOS中的self,或者Android中的this。

            如果一个闭包要使用this,则必须在闭包外声明:var that = this ,否则将报错。

        2.3.5 app.js

            获取当前App对象var app = getApp() 在任何地方都可以通过该函数获取到app.js对象。

        2.3.6 数据的传递

            2.3.5.1 将数据传给单例类

                想要将page中的数据传递给单例类,比如page的js中调用网络通信的工具类,一般直接通过工具类的方法进行传递即可,和传统的iOS/Android开发并无差别

            2.3.5.2 page1.js传递数据到page2.js

                a.可以通过app.js中进行传递

                    在page1.js中:var app = getApp() ;app.data.tmpData = "测试数据"

                    在page2.js中:var app = getApp() ;let tmpData = app.data.tmpData

                b.可以通过路径进行传递,此处可以传递map对象或者一般的string对象都可以

                    在page1.js中:

                        wx.navigateTo({

                            url:"../home/home?tmpData=" + "测试数据"

                        })

                    在page2.js中的onload函数中:

                        onload:function(options){

                            let tmpData = options.tmpData

                        }

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

推荐阅读更多精彩内容