当前位置:网站首页>【微信小程序】如何搭积木式开发?
【微信小程序】如何搭积木式开发?
2022-07-01 06:28:00 【前端小刘不怕牛牛】
上文我们对项目的代码构成进行了讲解,了解了各文件的作用以及语言类型与web网页开发语言的区别。
那么今天就来和大家探讨一下微信小程序的搭积木式开发,其实就是我们不需要再去写一些功能的底层代码,只需要用几行代码去调用微信环境的功能,就能来实现我们复杂的应用,提高我们开发者的效率。
一,宿主环境
在移动端,我们知道主要可以分为Android环境以及iOS环境,它们的功能是不可以分享的,就比如Android的微信APP在iOS端是无法执行的。
这些像APP的东西都是依靠环境提供的某些功能执行的。
而我们的小程序是依靠手机微信这个环境
小程序借助手机微信这个宿主环境,实现一些普通网页无法实现的功能,就如我们熟知的微信支付、地理定位等等,当然如果你的手机没有微信,小程序无法依靠该环境,也是无法执行的。
手机微信给小程序提供了四个方向的功能
- 通信模型
- 运行机制
- 组件
- API
二,通信模型
首先我们需要了解渲染层和逻辑层这两个概念:
- WXSS和WXML工作在渲染层,交由
webview渲染,渲染层中有多个webview线程; - JS工作在逻辑层,由
JScore线程运行JS脚本。这两者是分离的,也就是我们上一章提到的追求的渲染与逻辑分开的MVVM模式。
微信小程序有两种通信,如下:
- 一是渲染层与逻辑层之间的通信,两者之间有微信客户端(
Native)进行转发 - 二是逻辑层与第三方服务器之间的通信,有时我们需要在小程序中拉取服务器的数据,或对第三方服务器进行数据响应,这时候我们也是通过微信客户端(
Native)转发。
如HTTP request和Web socket分别表示数据请求和数据响应。
三,运行机制
完整的执行一个小程序,微信客户端的运行机制是什么?了解这些可以让我们更好的开发小程序。
首先微信客户端再打开小程序之前,会把整个小程序的代码包下载到本地。
紧接着呢就会通过app.json文件去拿到里面的pages字段,从而获取到你当前小程序的所有页面路径。
还记得pages里有什么吗?
{
"pages":[
"pages/index/index",
"pages/logs/logs"
]
}
在这个配置,小程序会将首行的页面路径也就是index对应页面作为首页,作为我们打开小程序的第一个页面。
小程序启动后,微信客户端会去找app.js文件,也就是项目的入口文件,实例化出一个小程序,App实例的onlaunch事件触发,执行回调函数。
App({
onLaunch: function(){
//代码
}})
那既然要显示页面,微信客户端就会把首页的代码先转载进来,然后去找页面下的.json配置文件,再然后转载该页面的WXML和WXSS文件来对页面进行渲染。
最后客户端才去转载.js入口文件,通过Pages函数实例化出一个页面,Pages函数大体包含data段和onload事件回调函数,如下所示:
Pages({
data: {
//参与页面渲染的数据
logs: []
},
onLoad: function(){
// onload事件,页面渲染后执行函数
}
})
data里存放参与该页面渲染的数据,这些数据需要在渲染层进行数据绑定等工作。
onLoad事件是在页面加载完成也就是渲染结束后触发,紧接着调用里面的回调函数。
四,组件组件
我们可以理解为,微信给我们开发者提供一些便捷的方式去做出复杂的功能,就像是WXML中的<map></map>标签,只需要这么行代码,我们就可以在页面中显示地图,甚至在我们增加一些属性值的设置,可以显现某个具体位置的地图。
如此,我们就可以像搭积木一样运用微信提供的组件,做出一些复杂的页面,实现高级的功能,是不是很人性化!
下一章我们将会开始视图组件的学习并练习!
五,API
提供一些独特功能,如获取用户信息、微信支付等等,这些我们开发者可以通过API直接使用。
比如我们要调用微信扫一扫功能,我们可以直接:
wx.scanCode({
success: (res) => {
console.log(res)
}
})
和组件类似,只是API相对可以提供更加复杂的功能,因为API其实是相当于调用微信环境内置的函数实现功能,微信小程序将一些能完成某些功能的源码封装进去,作为API供开发者使用。
今天的小程序到这就结束啦,如果觉得对你有帮助的话,可以关注一下牛牛后续的更新,感谢您的支持!
债见~
边栏推荐
- Excel visualization
- JMM details
- High order binary balanced tree
- C language course set up salary management system (big homework)
- 局域网监控软件有哪些功能
- 根据输入画有向图
- SystemVerilog learning-08-random constraints and thread control
- 第五章 输入/输出(I/O)管理
- B-tree series
- How did ManageEngine Zhuohao achieve the goal of being selected into Gartner Magic Quadrant for four consecutive years?
猜你喜欢

How does the port scanning tool help enterprises?

异常检测方法梳理,看这篇就够了!

NOC 设计的一些坑

JMM details

Discrimination between left and right limits of derivatives and left and right derivatives

Picture server project test

【Unity Shader 描边效果_案例分享第一篇】

C language course set up property fee management system (big work)

SQL statement

HCM Beginner (III) - quickly enter pa70 and pa71 to browse employee information PA10
随机推荐
启牛学堂合作的证券公司是哪家?开户安全吗?
Although pycharm is marked with red in the run-time search path, it does not affect the execution of the program
【ManageEngine卓豪】助力黄石爱康医院实现智能批量化网络设备配置管理
网络爬虫
[leetcode] day91- duplicate elements exist
[postgraduate entrance examination advanced mathematics Wu Zhongxiang +880 version for personal use] advanced mathematics Chapter II Basic Stage mind map
Promise
High order binary balanced tree
[ManageEngine] how to realize network automatic operation and maintenance
谷粒商城-环境(p1-p27)
三分钟带你快速了解网站开发的整个流程
C language course set up student elective course system (big homework)
码力十足学量化|如何在财务报告寻找合适的财务公告
C语言课设职工信息管理系统(大作业)
[unity shader custom material panel part I]
C language course design student information management system (big homework)
Student attendance system for C language course (big homework)
Detailed steps for installing redis on Windows system
HCM Beginner (III) - quickly enter pa70 and pa71 to browse employee information PA10
B-tree series