用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 新手教程 查看内容

【微信小程序】从入门到放弃

天下雪 2016-10-27 11:34

关于微信小程序是什么,能做什么的问题,草民在此不在罗列了,随着小程序的天天刷屏,想必您也是来吃一些干货,本篇博文和大家走进微信小程序的从入门到放弃~ ... ...

前言

关于微信小程序是什么,能做什么的问题,草民在此不在罗列了,随着小程序的天天刷屏,想必您也是来吃一些干货,本篇博文和大家走进微信小程序的从入门到放弃~

微信小程序开放功能

草民看过很多的文档,微信的官方文档写的着实不错了,草民真是发自内心夸赞一下腾讯的这个能力,大家可以前往阅读,下面通过一张图来总览一下小程序开放的功能:

微信小程序提供接口

功能解读:

微信小程序在UI部分沿用了自己weui的基础样式,且由于小程序依托于微信app,这样小程序就的很多api可以以桥接的方式来调用原声接口,包括导航、地图、选择图片、IO、网络、登录、支付等功能必然都是通过桥接来实现的,这也是小程序相比应用号和其他webapp的优势~

微信小程序跨平台动态化方案

由于微信小程序源码并未开源,关于微信小程序采用的动态化原理大家也都在猜测中,先简单普及一下最新的两种动态化方案:

hybird

采用传统htm+css+js的框架进行开发:

优点:

1.简单 快速,模版布局现成,熟练的H5开发工程师都可以胜任 
2.颠覆性的React框架的出现之后引入了Virtual DOM的概念,强大的DOM diff操作是UI更新更加流畅

缺点:

1.渲染速度与性能方面的表现依然与原声相差甚远 
2.从内存方面的考虑,列表复用问题无法解决

React Native 与 Weex*

优点:

1.开发沿用html或xml+css+js的方式,但是通过transform层将html 与 css 转换成Virtual DOM,native端进行映射渲染,性能方面大可不必担心。 
2.在native端植入了JS引擎,这样就可以扩展native api,调用一些系统权限或者扩展功能,例如选择图片。

缺点:

1.虽然沿用了前端传统开发方式,但是现阶段的html或xml与css的标准性是不够的,包括svg 、css绘制图标等 
2.需要了解部分的native知识,对开发效率方面是一个降低

通过上面两种方案的比较,个人还是更倾向于后者的,毕竟性能问题依然是很重要的,最初也猜测微信小程序选择的是后者,毕竟开放功能里面有很多是native才拥有的能力。

… 
可结论要让大家失望了,微信小程序采用的是前者,有很多人依然不相信,说我强大的腾讯帝国不可能选择落后的方案,来看一张图片:

了解Android的人都知道上图的意思,不过为了给其他工种程序员讲解,还是简单介绍一下这个功能,在android的开发者功能里边有一个显示布局边界的设置,这个功能可以把所有android原声控件的布局边界都显示出来,而上图的navigationBar与底部的bottomBar都是原生的,但是中间大部分内容都是webview,也证明了之前的观点,微信小程序采用的是Hybird方式


很多人要开始吐槽说,说草民你讲这些没用啊,我们又不关心原理,我们只想吃肉,不管是那头猪身上的,有那么一句话,不想当不想当厨子的裁缝不是好司机,想必大家不会想一直站在别人的肩上写代码吧,希望大家能够领悟到草民做这么多铺垫的意义。好吧,话不多说,接下来我们正式开始小程序的讲解。

开发准备

一、下载开发工具

链接地址

二、添加项目

三、填写项目信息

appid是小程序的,如果没有的话,选择无APPID,填写完成之后点击添加项目即可~

项目架构

程序主体

1、app.js : 主要存放一些公共的业务逻辑,或者监听小程序声明周期等操作

注:在任意一个page的js中,都可以通过调用getApp()获取app.js对象

App({
  onLaunch: function() { 
    // Do something initial when launch.
  },
  onShow: function() {
      // Do something when show.
  },
  onHide: function() {
      // Do something when hide.
  },
  globalData: 'I am global data'
})

操作:

1、App.prototype.getCurrentPage()

getCurrentPage() 函数用于获取当前页面的实例。

2、getApp()

邀请

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: walid 来自: 授权地址