`
JerryWang_SAP
  • 浏览: 1070525 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

微信小程序开发系列四:微信小程序之控制器的初始化逻辑

阅读更多

微信小程序开发系列教程

微信小程序开发系列一:微信小程序的申请和开发环境的搭建

微信小程序开发系列二:微信小程序的视图设计

微信小程序开发系列三:微信小程序的调试方法

 

这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hello World的微信小程序,并讲解了这个自动生成的微信小程序的视图开发原理。

 

本文继续介绍这个微信小程序的控制器index.js的实现, 即MVC设计理念的C-Controller-控制器。不过严格意义上说,按照微信小程序官方文档里介绍的,微信小程序实际采取的是React和Vue的MVMM的设计思路,提倡把渲染和逻辑分离。简单来说就是不要再让 JS 直接操控 DOM,JS只需要管理状态,然后再通过一种模板语法来描述状态和界面结构的关系即可。

下面我们来逐行分析index.js的代码:

//获取应用实例

const app = getApp()

getApp是微信框架的方法,返回当前小程序的应用实例。通常情况下这是微信小程序控制器执行的第一行代码:

 

这个应用实例的创建是在我们小程序控制器的访问范围之外由微信框架创建的,然后直接在getApp函数里返回创建好的app实例:

 

为什么这个app实例如此重要,以至于放到控制器的第一行代码来创建呢?我们直接在调试器里输入app然后回车,能看到这个app对象里包含了globalData这个属性和很多有用的方法。

 

有了app实例后,下一步需要创建的就是Page实例了。这个实例代表当前小程序页面,通过构造函数Page进行创建。

我们同样可以在微信小程序调试器里输入Page然后回车查看这个构造函数的源代码,

 

或者直接单步调试进去学习。下图就是Page构造函数单步执行的情况,输入参数e为一个Json对象,

 

这个输入参数e包含的内容有:

我们控制器index.js里实现的一个json对象,名称为data(作为当前微信小程序页面的数据模型,即MVC中的M),如下图红色下划线所示。

我们控制器index.js里实现的三个JavaScript函数,用于响应小程序上用户点击事件。

 

总结一下,任何微信小程序,其控制器的逻辑只有两步:

  • 调用微信小程序框架提供的标准函数getApp, 获得一个小程序实例。
  • 调用微信小程序页面构造函数Page,初始化页面实例。我们在控制器内主要的编码逻辑,主要集中在传入这个Page构造函数的输入参数,即一个json对象。

而这个json对象包含的属性也只有两类:

  • 第一类是另一个json对象,作为MVC中的M,即数据模型。这个json数据模型的字段被绑定到微信小程序视图的某个UI元素,比如Text, Image的对应属性,这样就自动把数据模型里的字段显示到UI上了。
  • 第二类是我们自己开发的JavaScript函数,用于响应微信小程序的用户输入,比如视图上的按钮点击事件等等。

这个系列的下一篇文章会详细介绍如何用JavaScript函数响应微信小程序的用户点击事件。

 

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 

 
 
0
0
分享到:
评论

相关推荐

    微信小程序开发实例.pdf

    微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要针对移动设备用户,特别是微信用户。它允许开发者在不安装应用的情况下,提供便捷的服务和功能。本教程旨在引导初学者进入微信小程序的开发世界,通过...

    微信小程序-麻将骰子:附教程.zip

    微信小程序有其特定的生命周期函数,如onLoad、onShow、onHide等,开发者需要根据这些生命周期函数的执行时机来安排合适的代码,例如初始化数据、页面展示、页面隐藏时的逻辑处理。 4. 教程内容: 教程可能涵盖...

    微信小程序Demo:备忘录

    "微信小程序Demo:备忘录" 是一个基于微信小程序开发的示例项目,旨在帮助开发者理解如何利用微信小程序框架创建一个功能完备的备忘录应用。 该"todolist-master"压缩包很可能是这个备忘录小程序的源代码仓库,包含...

    微信小程序大作业前端。

    4. **生命周期函数**:每个微信小程序页面都有其特定的生命周期,包括`onLoad`、`onShow`、`onHide`等,开发者可以在这个过程中执行初始化、加载数据或执行其他操作。 5. **网络请求**:微信小程序提供了`wx....

    微信小程序学习用demo:蔬菜列表

    1. **微信小程序的基本结构**:微信小程序由页面(Page)和组件(Component)组成,每个页面都有对应的JSON、WXML(结构)、WXSS(样式)和JS(逻辑)四个文件。JSON负责配置页面信息,WXML定义布局结构,WXSS处理...

    微信小程序demo:Railay:整体框架.rar

    微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的应用体验。"Railay"在这个上下文中可能是一个特定的小程序项目名称,代表了一个示例或者模板,用于...

    微信小程序开发-课程预约案例源码

    微信小程序是一种轻量级的应用开发平台,主要用于在微信内运行的应用程序。本资源分享的是一个课程预约的微信小程序源码,对于想要学习微信小程序开发或者需要构建类似功能的开发者来说,这是一个非常有价值的参考...

    基于wepy框架的扇贝阅读微信小程序

    微信小程序主要基于JavaScript进行开发,使用JS来处理业务逻辑、数据管理和页面交互。在“扇贝阅读”小程序中,JavaScript被用来控制用户界面的动态行为,如点击事件、数据绑定、网络请求等。开发者需要对...

    基于微信小程序实现二十四节气小程序小程序源码分享

    【基于微信小程序实现二十四节气小程序】是一种利用微信开发者工具和微信小程序框架,结合中国传统文化中的二十四节气,设计和开发的小型应用程序。这个小程序旨在为用户提供关于二十四节气的相关信息,包括节气的...

    (哇小侠)微信小程序学习用demo:音乐播放器:带列表循环模式设置.zip

    【微信小程序音乐播放器开发详解】 在微信小程序的开发领域,构建一个音乐播放器是常见的实践项目,尤其对于初学者来说,它可以帮助开发者深入理解小程序的API和生命周期。本项目是一个带列表循环模式设置的音乐...

    微信小程序开发项目源码+笔记.7z

    微信小程序是一种轻量级的应用开发平台,它允许开发者在微信生态系统内创建丰富的互动应用,无需通过传统的App Store下载,用户可以方便快捷地在微信中找到并使用。本项目提供了微信小程序的开发源码和相关笔记,是...

    微信小程序实时显示传感器数据,websocket相关.zip

    在微信小程序中实时显示传感器数据是一项常见的物联网应用需求,它涉及到微信小程序的开发、嵌入式系统、传感器数据处理以及WebSocket通信技术。WebSocket是一种在客户端和服务器之间建立长连接的协议,适合于需要...

    一个音乐播放器的微信小程序源码.zip

    微信小程序由一系列的页面构成,每个页面由WXML(微信小程序的标记语言)、WXSS(微信小程序样式语言)和JavaScript文件组成。WXML负责结构,WXSS负责样式,JS处理业务逻辑和数据管理。在这个项目中,我们可以看到...

    微信小程序源码-阅读读书.rar

    微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,为用户提供便捷的本地服务。"微信小程序-阅读读书"项目是基于微信小程序框架开发的一个阅读类应用源码,旨在帮助开发者理解如何构建一个...

    微信小程序开发-你画我猜案例源码.zip

    在这个“你画我猜”案例中,我们看到的是一个基于微信小程序平台的游戏开发实例,它展示了如何利用微信小程序框架进行游戏逻辑设计和用户界面构建。 1. **微信小程序框架**: 微信小程序使用了自己的一套开发语言...

    微信小程序源码(可用于毕业设计)-知乎.zip

    - 微信开发者工具:这是开发微信小程序必不可少的工具,它提供了代码编辑、预览、调试和发布等一系列功能。 - 小程序框架:基于WXML(WeChat Markup Language)和WXSS(WeChat Style Sheets)进行页面结构布局,用...

    微信小程序-简易音乐音乐源码.zip

    【微信小程序-简易音乐音乐源码.zip】是一个包含微信小程序开发的源代码包,主要用于创建一个简单的音乐播放应用。这个项目对于学习微信小程序的开发、音频处理以及移动应用设计具有很高的参考价值。以下是对其中...

    esp8266 微信小程序控制源码

    这个源码包提供了一种方法,使你能够通过微信小程序控制ESP8266设备。微信小程序是一种轻量级的应用开发平台,用户无需下载安装即可在微信内使用,大大提升了用户体验。 该源码的核心技术是基于MQTT(Message ...

    微信小程序开发-打卡签到案例源码.zip

    微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的应用服务。在这个“微信小程序开发-打卡签到案例源码.zip”压缩包中,包含了实现一个打卡签到功能...

    人学习微信小程序的练习demo

    7. 组件化开发:微信小程序支持组件化开发,开发者可以自定义组件,复用代码,提高开发效率。组件可以有自己的WXML、WXSS、JS和JSON,如同一个小而全的独立小程序。 8. 数据绑定和状态管理:微信小程序采用双向数据...

Global site tag (gtag.js) - Google Analytics