微信小程序是啥本质其实就是(混合)的app
发表时间:2023-11-22 14:23:55
文章来源:炫佑科技
浏览次数:121
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
微信小程序是啥本质其实就是(混合)的app
其本质实际上是一个介于 Web 应用程序和本机应用程序之间的(混合)应用程序。 具有丰富的接口,可以调用手机的各种功能,同时又灵活、跨平台。
1、运行环境的差异
微信小程序运行在三个终端:iOS、用于调试的开发工具。
三种终端脚本执行环境和用于渲染非原生组件的环境是不同的:
2、小程序目录结构
project ├── pages | ├── index| | ├── index.json index 页面配置 | | ├── index.js index 页面逻辑 | | ├── index.wxml index 页面结构 | | └── index.wxss index 页面样式表 | └── log| ├── log.json log 页面配置 | ├── log.wxml log 页面逻辑 | ├── log.js log 页面结构 | └── log.wxss log 页面样式表 ├── app.js 小程序逻辑 ├── app.json 小程序公共设置 └── app.wxss 小程序公共样式表
3. 为什么小程序更快?
2.小程序架构
微信小程序的框架由两部分组成:View层(可能有多个)和App逻辑层(一个)。 View层用于渲染页面结构微信小程序开发过程,该层用于逻辑处理、数据请求、接口调用。 它们是在两个线程中实现的。 跑进去。
视图层使用渲染,逻辑层使用运行。
视图层和逻辑层通过系统层进行通信。 逻辑层将数据变化通知视图层,并触发视图层的页面更新。 视图层将触发的事件通知给逻辑层进行业务处理。
让我们重点关注wxs:
由于View和App是不同的线程,所以之前传输过数据。 当视图中需要处理一些数据时,可以使用wxs来处理。 定义如下及使用说明
索引.js
//获取应用实例const app = getApp() Page({ data: { motto: 'Hello World', userInfo: {}, hasUserInfo: false }, //事件处理函数 bindViewTap: function() { }, onLoad: function() { } })
{{tools.bar(motto)}} {{tools.foo}} var foo = "'hello world' from comm.wxs"; var bar = function(d) { return '啥子玩意'+d; } module.exports = { foo: foo, bar: bar };
3.小程序启动、加载和运行机制
小程序启动时有两种情况,一种是“冷启动”,一种是“热启动”。 如果用户已经打开过某个小程序,然后在一定时间内再次打开小程序,此时不需要重新启动它。 只需将后台小程序切换到前台即可。 这个过程是热启动; 冷启动是指用户**次打开小程序或者被微信主动销毁后再次打开时微信小程序是啥本质其实就是(混合)的app,需要重新加载并启动小程序。
更新机制
如果冷启动时发现新版本小程序,则会异步下载新版本代码包,并与客户端本地包同时启动。 即下次冷启动时才会应用新版本的小程序。 如果需要立即应用*新版本,可以使用 wx. API 来处理它。
运行机制
4.查看(页面查看)
视图层采用WXML和WXSS编写,通过组件显示。
将逻辑层的数据反映到视图中,并将视图层的事件发送到逻辑层。
1. 视图-WXML
wxml编译器:wcc 将wxml文件转换为js 执行方法:wcc index.wxml
2.查看-WXSS
3.查看-
4. 查看-
5. 预加载
小程序每次进入时,除了当前页面之外,还会提前加载一个额外的页面。
当指定页面打开时,直接使用默认数据进行渲染,并在请求数据返回时进行部分更新。
返回显示历史查看
退出小程序,View状态不被破坏
6.App(逻辑层)
逻辑层处理数据并发送给视图层,同时接受视图层的事件反馈。
1、App()小程序的入口; Page()页面的入口
3.提供丰富的API,如微信用户数据、扫描、支付等微信特有的能力。
4、每个页面都有独立的作用域,并提供模块化能力。
5.数据绑定、事件分发、生命周期管理、路由管理
操作环境
IOS-
- X5 JS 解析器
- nwjs内核
1.应用程序-
2. 应用程序生命周期
3.应用程序API
API 通过 和 进行通信
4.应用程序-
保留当前页面,跳转到应用程序中的某个页面,并使用它返回原始页面。页面路径只能是五级
关闭当前页面并跳转到应用内的页面。
关闭当前页面并返回上一页或多级页面。 可以通过())获取当前页面堆栈,并决定需要返回多少层。
5、小程序开发经验
1、小程序存在的问题
小程序仍然使用渲染,而不是原生渲染
需要独立开发,不能运行在非微信环境。
开发无法扩展新组件。
依赖浏览器环境的JS库无法使用,因为它们被执行并且没有对象。
本地(图像、字体等)不能在 WXSS 中使用。
WXSS转换为js而不是css。
WXSS 不支持级联选择器。
小程序无法打开页面,无法启动APP。
2、小程序的优势
提前创建一个新页面,为新页面渲染做准备。
View层和逻辑层分离,由数据驱动,不直接操作DOM。
使用 DOM 进行本地更新。