前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序:开发入门及案例详解

微信小程序:开发入门及案例详解

作者头像
yeedomliu
发布2021-12-01 19:57:29
2.8K0
发布2021-12-01 19:57:29
举报
文章被收录于专栏:yeedomliuyeedomliu

前言

  • 所有案例代码可以到https://github.com/wxappbook下载

第1章 初识小程序

  • 官方规定小程序包容量不得超过1M,使得下载、安装(部署)过程特别快,用户在感官上察觉不到它在安装而已
  • 小程序与订阅号、服务号、企业号是并行的体系,具有独立的注册、发布流程。开发小程序首先前需要在微信公众平台上注册小程序,完善基本信息,然后下载开发者工具进行编码,最后通过开发者工具提交代码,官方审核通过后便可发布
  • 现阶段每个机构账号只允许注册最多50个小程序,每个小程序一年需要缴纳300元,所有小程序都需要绑定一个电子邮箱,一个手机号码最多只能绑定5个小程序
  • 开发小程序之前还需要进入“用户身份–开发者”,绑定开发者,如图1-6所示。只有绑定的开发者才能使用开发者工具编写小程序,一个小程序最多可以绑定20个开发者,未认证的小程序最多可以绑定10个开发者

图16 绑定开发者

  • 添加开发者后,需要要进入“设置–开发设置”,获取AppID,如图17所示。AppID十分重要,只有填写了AppID的项目才能通过手机微信扫码进行真机测试

1)打开微信开发者工具。第一次启动需要扫描二维码登录

图19 登录微信开发者工具

2)登录后选择“添加项目

3)在填写项目信息之前,先创建一个空目录作为项目资源目录,这里我们以E:\weixin\demo为例

4)填写项目信息。如果没有AppID可以选择“无AppID”;填写项目名称,项目名称在微信开发者工具中是唯一的;项目目录选择刚才创建的空目录,这里一定要保证刚才创建的目录为空目录,这样下面会出现“在当前目录中创建quickstart项目”选项

修改index.wxml,将“{{motto}}”替换为“我的第一个小程序

填写了AppID的项目可以选择“项目→预览”(如图1-14所示),扫描二维码在微信中体验项目

官方资料:http://mp.weixin.qq.com/debug/wxadoc/introduction


第2章 小程序开发核心

  • 小程序框架将整个系统划分为视图层逻辑层
  1. 视图层是由框架设计的标签语言WXMLWeiXinMarkupLanguage)和用于描述WXML组件样式的WXSSWeiXinStyleSheets)组成,它们的关系就像HTMLCSS的关系
  2. 小程序逻辑层是一套运行在本地JavaScript引擎的JavaScript代码,在此基础上框架实现了一套模块化机制,让每个JS文件有独立的作用域和模块化能力,这套模块化机制遵循CommonJS规范,熟悉NodeJs的开发者应该有一定了解
  • 小程序中的视图层和逻辑层的交互是通过数据绑定和事件响应实现的,这是一种单向绑定的机制

图21 视图层与逻辑层关系

“徒手”创建小程序

  1. 创建项目目录,这里以E:\weixin\myproject为例
  2. 按图22所示的目录结构创建文件
  3. 打开app.json,写入以下代码
  4. 打开index.wxml,写入以下代码
  5. 打开index.js文件,写入以下代码
  6. 打开微信开发者工具,填写AppId和项目名称,点击“选择”按钮添加项目,项目目录选择刚才创建的目录E:\weixin\myproject,点击“添加项目”完成添加
  7. 导入项目后我们便能看到运行界面,当我们点击文字时,点击次数也会随之增加(如图2-4)

图22 目录结构

图23 项目配置界面

  • 框架首先会解析配置文件app.json,通过pages设置找到默认首页页面mypages/index/indexpages第一个路径默认为首页),然后加载mypage/index目录中index.wxmlindex.wxssindex.jsindex.json这4个文件进行页面渲染

图2-4 myproject运行界面

  • 一个完整的小程序中,文件主要分为框架程序主体文件和页面文件两大类:
  1. 框架程序主体文件是系统级别文件,一个项目只有一份,分别是app.jsonapp.jsapp.wxss,它们分别控制小程序整体配置、逻辑和整体样式,小程序启动时只会执行一次。这3个文件必须放在项目根目录,且文件名必须是app,其中app.jsonapp.js是必须的
  2. 一个小程序有一个或多个页面,一个页面由.wxml.wxss.jsjson四个文件组成,它们分别控制页面的结构、样式、逻辑和配置,其中.wxml文件和.js文件是必须的,按照框架规定,同一个页面的这4个文件必须具有相同的路径和文件名,所以在这个项目中我们将它们放置在mypages/index路径下且文件名统一为index,其中index目录名可以和页面文件名不一致,为了便于管理我们尽量将页面目录名和页面文件名保持一致

2.3 框架主体文件

  • 框架主体文件由app.jsonapp.jsapp.wxss构成,这3个文件必须放置在项目根目录,一个小程序只有一份,它们负责小程序整体的配置:
  1. app.json:小程序公共设置,配置小程序全局设置
  2. app.js:小程序逻辑文件,主要用于注册小程序全局实例,编译时会和其他页面逻辑文件打包成一份JavaScript文件
  3. app.wxss:小程序公共样式表,对所有页面的布局文件都有效
2.3.1 配置文件(app.json
  1. pages:设置页面路径,必填项
  2. window:设置默认页面的窗口表现
  3. tabBar:设置tab的表现
  4. networkTimeout:设置网络超时时间
  5. debug:设置是否开启debug模式,默认关闭

app.json文件内容整体结构如下:

pages 配置
  • pages负责注册小程序页面,必须填写,value值为一个包含页面路径的数组,用来指定小程序由哪些页面构成,每一项由页面“路径+文件名”组成,如下所示:
  • pages数组中页面路径不需要填写文件后缀名,渲染页面时框架会自动寻找路径.json.js.wxml.wxss四个文件进行整合
  • pages配置数组第一项代表小程序的初始页面
  • 小程序中增加、删除页面,都需要对pages进行修改,并且重启项目
window配置
  • window负责设置小程序状态栏、导航条、标题、窗口背景色等系统级样式
tabBar 配置
  • 当程序顶部或底部需要菜单栏时,我们可以通过配置tabBar快速实现,tabBar是个非必填项目

代码清单21 app.json

  • 配置后页面效果如图26所示

图2-6 tabBar配置示例

networkTimeout 配置
  • 小程序中各种网络请求API的超时时间只能通过networkTimeout统一设置,不能在API中单独设置

示例代码如下:

debug 配置
  • 开启debug模式后,在开发者工具的控制面板,调试信息以info的形式输出
小程序逻辑(app.js)
  • 小程序中逻辑文件分为页面逻辑文件小程序逻辑文件
  • app.js便是小程序逻辑文件,在这个文件中,我们可以通过App()函数注册小程序生命周期函数、全局方法和全局属性,已注册的小程序实例可以在其他逻辑层代码中通过getApp()获取
  • App()函数用于注册一个小程序,参数为一个Object对象,在这个参数对象中我们可以注册自定义方法和属性供全局使用,就像在quickstart项目中,我们利用App()注册了用户登录信息
  • 程序生命周期函数的执行时机
  1. 当启动一个小程序时,首先会先依次触发onLaunchonShow方法,然后通过app.jsonpages属性注册相应的页面,最后根据默认路径加载首页;
  2. 当用户点击左上角关闭,或者按了设备Home按钮离开微信时,小程序并没有直接销毁,而是进入了后台,这两种情况都会触发onHide方法;
  3. 当再次唤醒微信(针对点击Home按钮离开微信)或再次从微信中打开小程序时,又会从后台进入前台,这时会触发onShow方法
  4. 只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正销毁
获取小程序实例
  • 注册小程序后,在其他逻辑文件中,可以通过全局函数getApp()获取小程序实例,例如:
全局样式(app.wxss)
  • 页面渲染时,框架页中的.wxss文件样式会覆盖app.wxss中相同的选择器样式

框架页面文件

  • 小程序中一个框架页面包含4个文件,同一框架页面的这4个文件必须具有相同的路径与文件名
页面配置文件
  • 页面配置文件是非必要存在的,同时页面配置文件的配置项只有window,控制当前页面的窗口表现,window的属性和app.json一致
  • 编写时只需直接写出属性,不用写window这个键,如下所示:
页面逻辑文件(JavaScript)
  • 小程序的逻辑层文件是JavaScript文件,所有的逻辑文件,包括app.js,最终将会打包成一个js文件,在小程序启动时运行,直到小程序销毁,类似于ServiceWorker,所以逻辑层也称为AppService
注册页面
  • 在页面逻辑文件中需要通过Page()函数注册页面,指定页面的初始数据、生命周期函数、事件处理函数等,参数为一个Object对象

代码清单22 页面逻辑文件

页面生命周期
  • 页面的生命周期函数比小程序的生命周期函数略微复杂一点,弄懂其执行顺序能避免在不恰当的生命周期函数中调用还未创建的对象或方法,小程序框架以栈的形式维护了当前的所有页面,当发生路由切换时,页面栈和生命周期函数的关系如下:
  • 页面的生命周期整体关系着页面视图层线程和页面逻辑层线程,注册页面时,Object参数中很多属性都是生命周期函数,这些函数的调用和页面生命息息相关,程序视图层线程和逻辑层线程关系如图28所示

图28 Page实例的生命周期

页面结构文件(WXML)
  • WXMLWeiXinMarkupLanguage)是框架设计的一套标记语言,用于渲染界面,WXML的渲染原理和ReactNative思路一致,通过一套标记语言,在不同平台被解析为不同端的渲染文件

图29 界面渲染示意图

  • 简单绑定是指我们使用Mustache语法(双大括号)将变量包起来,在模板中直接作为字符串输出使用,可作用于内容、组件属性、控制属性、关键字等输出,其中关键字输出是指将JavaScript中的关键字按其真值输出

示例代码如下:

  • 组件属性为boolean类型时,不要直接写checked="false",这样checked的值是一个false的字符串,转成boolean类型后代表为true,这种情况一定要使用关键字输出:checked="{{false}}
  • 在{{}}内可以做一些简单的运算,支持的运算有三元运算、算数运算、逻辑判断、字符串运算,这些运算均符合JavaScript运算规则
  • 我们利用如下示例为大家展示:
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yeedomliu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 第1章 初识小程序
  • 第2章 小程序开发核心
    • “徒手”创建小程序
      • 2.3 框架主体文件
        • 2.3.1 配置文件(app.json)
        • pages 配置
        • window配置
        • tabBar 配置
        • networkTimeout 配置
        • debug 配置
        • 小程序逻辑(app.js)
        • 获取小程序实例
        • 全局样式(app.wxss)
      • 框架页面文件
        • 页面配置文件
        • 页面逻辑文件(JavaScript)
        • 注册页面
        • 页面生命周期
        • 页面结构文件(WXML)
    相关产品与服务
    云开发 CloudBase
    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档