微信小程序框架解析

  • 格式:ppt
  • 大小:2.66 MB
  • 文档页数:32

下载文档原格式

  / 32
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分类 网络
媒体 数据 位置 设备
界面 开放接口
名称 发起请求 上传下载
WebSocket
图片 视频 音频 录音 文件 数据缓存 获取位置 查看位置 网络状态 系统信息 重力感应 罗盘 拨打电话 Canvas 动画 导航、设置导航条 交互反馈 登录 用户信息 微信支付 模板消息
API request uploadFile / downloadFile connectSocket / onSocketOpen / onSocketError / sendSocketMessage / onSocketMessage / closeSocket / onSocketClose chooseImage / previewImage / getImageInfo chooseVideo playVoice / pauseVoice / stopVoice startRecord / stopRecord saveFile / getSavedFileList / getSavedFileInfo / removeSavedFile setStorage / getStorage / removeStorage / clearStorage getLocation openLocation getNetworkType getSystemInfo onAccelerometerChange onCompassChange makePhoneCall drawCanvas / drawCanvas / canvasToTempFilePath createAnimation navigateTo / redirectTo / navigateBack showToast / showModal / showActionSheet login getUserInfo requestPayment
运行环境 IOS - JSCore Android - X5 JS解析器 DevTool - nwjs Chrome 内核
• App Service - Binding
• App Service - Life Cylce
View init
Render init
User Event
Send init Data Notify
• 小程序演示
企鹅电竞小程序体验
•ቤተ መጻሕፍቲ ባይዱ为什么那么快
common lib user common js
Page Frame
Native预先加载一个WebView 当打开指定页面时,无需加载额外资源直接渲染 返回显示历史View 退出小程序,View状态不销毁
• 小程序入口
扫码进入小程序 搜索小程序 发现->小程序 小程序发送到桌面(android)
Compiler
Width,DPR
WXSS
JS
CSS
• View – WXSS Selectors
选择器 .class
#id element
element, element
::after ::before
样例 .intro #firstname view view, checkbox
view::after view::before
navigator
button radio checkbox form input
label
picker
switch
action-sheet modal toast loading image audio video map canvas
HTML
div、ul、li、article、section……
• View - Component
小程序的组件基于Web Component标准 使用Polymer框架实现Web Component
• View - Native Component
Native组件层在WebView层之上 <canvas / ><video / ><map / ><textarea / >
Event Data
App Service
Network
Init request Package
Ajax request JSON Data
CDN Web Server
Storge
• View (页面视图)
• View - WXML
WXML(WeiXin Markup Language)
支持数据绑定 支持逻辑算术、运算 支持模板、引用 支持添加事件(bindtap)
• App Service(逻辑层)
• App Service
逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈
1、App( ) 小程序的入口;Page( ) 页面的入口 3、提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力。 4、每个页面有独立的作用域,并提供模块化能力。 5、数据绑定、事件分发、生命周期管理、路由管理
Compiler
WXML
JS
Data
Virtual DOM
Virtual DOM
DOM Tree
• View - WXSS
WXSS(WeiXin Style Sheets)
支持大部分CSS特性 添加尺寸单位rpx,可根据屏幕宽度自适应 使用@import语句可以导入外联样式表 不支持多层选择器-避免被组件内结构破坏
span、em、p…… span、em、i…… div…… a button、input input input form input
label
select input、div…… div、ul…… div…… div…… img、span、div…… img audio video map canvas
样例描述 选择所有拥有 class="intro" 的组件
选择拥有 id="firstname" 的组件 选择所有 view 组件 选择所有文档的 view 组件和所有的 checkbox 组件
在 view 组件后边插入内容 在 view 组件前边插入内容
• View - Component
大类 视图容器 基础内容 链接、导航
Event
Re-Render
Send Data
New View
App Service
onLaunc h
Page
onLoad onShow
onReady
Handler
onHide New Page onShow
Launch Native
Route
Route
• App Service - API
API通过JSBridge和Native 进行通信
表单
细分 普通视图容器
滚动视图
滑块视图 文本 图标 进度条 链接、导航 按钮 单选 多选 表单 输入框
改进表单可用性
操作反馈
媒体 地图 画布
滚动选择器
开关选择器
底部菜单 弹窗 toast 加载 图片 音频 视频 地图 画布
view
WXML
scroll-view
swiper
text icon progress
• 微信小程序框架解析
• hongweiqu(渠宏伟)
• CONTENTS
• 01 小程序介绍和 演示
• 02 小程序架构
• 03 小程序视图层
• 04 小程序逻辑层
05 小程序开发经验
• 小程序介绍
• 小程序的特点
类WEB 不是HTML5 即用即走,随手可得
拥有离线能力 基于微信跨平台 媲美原生操作体验
• 小程序架构
• 小程序架构
View(视图层)
Page Page Page
WXML WXSS
Event
Data
微信能力
App Service (逻辑层)
Manager
API
JSBridge 离线存储
Native(系统层)
Data
网络请求
Event

• 小程序架构
In WeChat
View
Data Event