微信小程序是啥本质就是(混合)的app
发表时间:2023-12-05 09:17:07
文章来源:炫佑科技
浏览次数:222
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
微信小程序是啥本质就是(混合)的app
其本质实际上是一个介于 Web 应用程序和本机应用程序之间的(混合)应用程序。 具有丰富的接口,可以调用手机的各种功能,同时又灵活、跨平台。
1、运行环境的差异
微信小程序运行在三个终端:iOS、用于调试的开发工具。
三种终端脚本执行环境和用于渲染非原生组件的环境是不同的:
2、小程序目录结构
├── 页数
| ├── 索引
| | ├──index.json索引页配置
| | ├──index.js索引页逻辑
| | ├──index.wxml索引页结构
| | └──index.wxss 索引页样式表
| └── 日志
| ├── log.json 日志页面配置
| ├── log.wxml 日志页面逻辑
| ├── log.js 日志页面结构
| └── log.wxss 日志页面样式表
├── 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 进行本地更新。