本文小编为大家详细介绍“微信小程序运行流程实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序运行流程实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一.微信小程序是啥
本质其实就是(混合)的app 介于web app与native 原生app之间,具备丰富的调用手机各种功能的接口,同时又具备灵活性,跨平台
1. 运行环境差异
微信小程序运行在三端:iOS、Android 和 用于调试的开发者工具。
三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的:
在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中,是由 WKWebView 来渲染的,环境有 iOS8、iOS9、iOS10
在 Android 上,小程序的 javascript 代码是通过 X5 JSCore来解析,是由 X5 基于 Mobile Chrome 53/57 内核来渲染的
在 开发工具上, 小程序的 javascript 代码是运行在 nwjs 中,是由 Chrome Webview 来渲染的来自官方文档说明
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 小程序公共样式表
二、小程序架构
微信小程序的框架包含两部分View视图层(可能存在多个)、App Service逻辑层(一个),View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。
视图层使用WebView渲染,逻辑层使用JSCore运行。
视图层和逻辑层通过系统层的WeixinJsBridage进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。
重点讲一下wxs :
由于view 与 App Service是不同线程,之前是传递数据,当遇到一些数据需要在view中处理时,就可以用wxs来处理,如下所示定义 <wxs module="tools">,使用说明
index.js
//获取应用实例const app = getApp()Page({ data: { motto: 'Hello World', userInfo: {}, hasUserInfo: false }, //事件处理函数 bindViewTap: function() { }, onLoad: function() { }})
<!--index.wxml--><view class="container"> <view class="usermotto"><text class="user-motto">{{tools.bar(motto)}}</text><text class="user-motto">{{tools.foo}}</text> </view> <wxs module="tools"> var foo = "'hello world' from comm.wxs"; var bar = function(d) { return '啥子玩意'+d; } module.exports = { foo: foo, bar: bar }; </wxs></view>
读到这里,这篇“微信小程序运行流程实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。