微信小程序简介

举报
JohnTai 发表于 2018/12/27 16:46:47 2018/12/27
【摘要】 什么是小程序是一种介于原生App、和Web App的Hybrid。通过微信进行加载,达到类似原生App的流畅体验。相对原生App来说,小程序更加轻量、能实时更新、跨平台;相对Web App来说,小程序资源离线,体验更流畅。可以归纳为是用类ReactNative/Weex框架编写的,在手机微信环境中运行的应用。小程序的实现机制小程序是基于微信提供的一套框架进行开发的。微信通过封装微信客户端提供...

什么是小程序

是一种介于原生App、和Web App的Hybrid。通过微信进行加载,达到类似原生App的流畅体验。相对原生App来说,小程序更加轻量、能实时更新、跨平台;相对Web App来说,小程序资源离线,体验更流畅。

可以归纳为是用类ReactNative/Weex框架编写的,在手机微信环境中运行的应用。


小程序的实现机制

小程序是基于微信提供的一套框架进行开发的。微信通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,对上层提供了一套完整的JavaScript API,使得开发者能够非常方便的使用到微信客户端提供的各种基础功能,快速构建一个小程序。框架设计如下:

Paste_Image.png

框架提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的应用逻辑层。视图层与逻辑层之间通过单向数据绑定进行数据传输,开发者能更加聚焦于数据与逻辑上。


开发者如何编写小程序

1.开发环境

微信官方提供了一个IDE,编码、调试、编译、项目管理、提交等功能都涵盖在其内。

2.创建项目与编码

在IDE中新建项目后,会自动初始化几个简单的代码文件。最关键也是必不可少的,是 app.js、app.json、app.wxss 这三个。其中,.js后缀的是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例。

Paste_Image.png

项目全局文件

  • app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口�背景色,配置导航条样式,配置默认标题等。

  • app.wxss 可以看做全局的公共样式表,凡是在这里写过的CSS样式,在各自子页面里面可以直接使用。写在其他.wxss文件里的样式是不能跨page使用的,可以通过@import进行样式导入。

  • app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。通过js的一个全局函数getApp()可以获得当前app实例对象。

页面文件

小程序的每一个页面是由同一路径下4个同名但不同后缀的文件组成,如:HomePage.js、HomePage.wxml、HomePage.wxss、HomePage.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。

  • HomePage.js 是这个页面的业务逻辑,当你在空白js里面输入page的时候会自动出现代码补全,帮你补全了一个page的所有生命周期,onLoad,onHide等。

  • HomePage.wxss 是这个页面专属的样式,别的页面不能使用,只在这个页面才可以用,但是可以被import到app.wxss里面,实现全局通用。wxss的代码提示非常完善。

  • HomePage.wxml 描述页面的结构,wxml语法虽然乍看与HTML类似,但并不是HTML。我们必须用wx提供的wxml相关组件完全重写,条件渲染,循环渲染,数据绑定,都需要按照微信文档制定规则编码,并且提供了最简单的模板模块功能,实现一定程度的复用。

  • HomePage.json 是页面的配置文件: 页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

  • 通过.js和.wxml实现MVC模型

3.调试

微信小程序的调试模式,和Chrome的debug模式基本一模一样,里面应该是封装一套WebKit,有人在反编译出的源码里发现Chrome Debug tool的js代码。

Paste_Image.png

4.发布

小程序开发完成之后,通过IDE可以将项目代码文件上传到微信开发平台,具有管理员权限的用户登录平台后,可以提交给微信官方审核。

管理员将其他同事微信添加到体验组里后,可以在手机微信中体验小程序运行效果。

5. 其他:

  • 主动推送模板消息

  • 数据统计

Paste_Image.png

Paste_Image.png


底层API与基础组件库

微信主要为开发者提供了基于微信APP的底层API 和 一套基础组件库。

1. 通过调用API,可以方便的使用微信提供的各项功能,如获取用户信息,本地存储,支付功能等。API涵盖以下七个主要部分:
  • 网络:发起请求、文件上传与下载、WebSocket

  • 媒体:图片、录音、音频播放控制、音乐播放控制、文本文件、视频

  • 数据:数据缓存同步、摘要、移除

  • 位置:获取、查看详情

  • 设备:网络状态、系统信息、重力感应、罗盘、拨打电话

  • 界面:交互反馈、设置导航条、导航、动画、绘图

  • 开放接口:登录、用户信息、微信支付、模板消息

2. 微信为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。基础组件库涵盖以下八个主要部分:
  • 视图容器:view、scroll-view、swiper

  • 基础内容:icon、text、progress

  • 表单组件:button、checkbox、form、input、label、picker、radio、slider、switch、textarea

  • 操作反馈:action-sheet、modal、toast、loading

  • 导航:navigator

  • 媒体组件:audio、image、video

  • 地图:map

  • 画布:canvas


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。