北京站[切换城市]

荣获中国电子商务行业百强品牌

咨询电话:400-606-5558

微信小程序开发总结

2017-11-02 20:01:22 阅读:307 作者:子龙 来源:巨推传媒 分类:小程序开发
微信小程序开发总结

微信小程序出来也有一段时间了,之前也陆续做过demo练练手,毕竟自己的demo还是比较简单的,如今参与公司的项目也是一路踩坑而来。

认识小程序

语言及开发工具

首先,小程序类Web,但不同于我所认识的HTML,他有属于自己的开发语言及工具:

  • JavaScript: 微信小程序的 JavaScript 运行环境即不是 Browser 也不是 Node.js。它运行在微信 App 的上下文中,不能操作 Browser context 下的 DOM,也不能通过 Node.js 相关接口访问操作系统 API。
  • WXML: 作为微信小程序的展示层,并不是使用 Html,而是自己发明的基于 XML 语法。
  • WXSS: 用来修饰展示层的样式。官方的描述是 “ WXSS (WeiXin Style Sheets) 是一套样式语言,用于描述 WXML 的组件样式。WXSS 用来决定 WXML 的组件应该怎么显示。”
  • 小程序开发工具,开发者可以完成小程序的 API 和页面的开发调试、代码查看和编辑、小程序预览和发布等功能。

入口文件

小程序主要包含以下三个入口文件:

  • app.js 这个文件是整个小程序的入口文件,我们主要做了网络检测、用户信息获取等;当让也可以注入公用的方法在其他页面中去通过 getApp() 调用(注:页面中调用app.js中的方法时不需要通过 require 或者 import 引入)
  • app.json 这个文件可以对小程序进行全局配置,决定页面文件的路径、整体窗口表现、设置网络超时时间、设置多tab等.
  • app.wxss 是小程序的公共样式表

项目开发

本次项目只负责了首页、授权和一些公共模块的开发,接下来就着重从这些模块展开。

生命周期

当然,微信小程序和其他前端框架类似也是有生命周期的:

Page({
/**
* 页面的初始数据
*/
data: {},

/**
* 生命周期函数--监听页面加载(像首页数据请求可以放在这里)
*/
onLoad: function (options) {},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},

/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},

/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},

/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},

/**
* 页面相关事件处理函数--监听用户下拉动作(这里添加了下拉刷新的功能)
*/
onPullDownRefresh: function () {},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},

/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {}
})

当我们在 data 中初始化的值需要修改时,可在各生命周期及方法中通过 setData() 修改。由于小程序的入口页面就是首页,在首页添加了用户登陆和网络状态的检测在 onLoad 中。

tabBar

tabBar即小程序的底部导航栏,由于微信的限制,最少2个最多5个导航栏,只可设置文案、图标。

样式

小程序样式采用WXSS语言(具有CSS大部分特性)。他也提供了一种新的单位rpx(可根据屏幕宽度自行适应)。官方规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素,既然这样我们也推荐了我们设计师采用iPhone6作为设计标准,即750px宽度。

但是在实际的开发过程中如果字体大小也使用rpx做单位的话,在iPhone6 Puls上显示文字过大,影响美观。后经过测试采用了px做单位,即原设计稿尺寸的一半+px,这样可以保证文字大小在各设备中保持一致。

网络状态

在官方文档上有明确规定,本地资源是无法通过CSS获取的,图片的话只能使用网络资源或base64方式。首页有个需要判断网络状态的需求,由于断网情况下无法获取网络资源,最后就使用了base64的方式。

官方获取网络状态的API是 getNetworkType 为异步接口,通过它的返回结果再进行下一步(是显示无网络还是调用数据列表接口),说到这里大家都知该怎么办了—— Promise ,具体封装如下

new Promise((resolve, reject) => {
  let req = wx.getNetworkType({
    success: function (res) {
      var networkType = res.networkType;
      if (networkType === 'none') {
        resolve(false)
      } else {
        resolve(true)
      }
    },
    fail() {
      reject(false)
    }
  });
})

调试

调试的时候最大的问题呢是:无论是开发者工具上还是手机上,记得先把缓存删干净再测。特别是开发者工具每次切换host都要清理缓存,再重新打开,而且出现bug的时候尽量多测几次,进行反复确定。不然的话,你可能会发现,本来测好的功能又出现问题了,或者是本来有问题的部分又没有问题了。

上一篇:介绍微信小程序的wx.request API和获取openId、sessionKey的方法【原创 下一篇:宋宋宋哥

更多推荐

免费代运营名额抢领

公司正在筹划上市,为扩大市场占有率,将在近3个月内每日赠送6个免费服务名额。

今日仅剩下2个免费名额

文章周榜 文章日榜

相关文章

  • 1微信小程序的市场究竟有多大?

    小程序诞生近一年了,很多人在观望,有人把小程序当做下一个蓝海,ALL-IN小程序,有的人觉得小程序鸡肋,完全不想入驻。说穿了,大家最关系的问题是商机,微信小程序...

  • 2微信小程序对微信运营有哪些影响

    如果说 微信运营 成为企业营销推广的新渠道的话,那么微信小程序的发展是能抓住消费者心理的新趋势。随着时代的发展,人们的需求在不断的提高,而消费趋势也在不断的变化...

  • 3微信小程序如何做微信营销

    微信小程序并不是很新的概念,经历过一年不断更新改版的小程序,为什么 微信营销 首获红利?速成应用小程序总结出以下几点原因: 1.流量属性:更多场景、更多入口。小...

  • 4微信小程序的推广方式

    随着小程序的问世,越来越多的人将精力都花在小程序这一块,让其瞬间成为一个香饽饽,但是从总体来看,小程序其实是一个并不怎么被看好的产品,因为分享途径少,入口比较局...

  • 5企业进行微信小程序开发的好处有哪些呢?

    目前, 微信 小程序 开发 呈现出 持续火热 的状态 ,越来越多的商家开始关注并开发自己的小程序, 但是,我们也看到,还有一部分的 商家 持观望的态度,不知道是...

  • 6企业如何发挥微信小程序的作用呢?

    现在, 微信小程序 成为了企业在进行微信营销时又一个有效的方式,许多企业通过 微信小程序 开发的方式建立起微信上的营销覆盖网络,但是,有些企业在开发小程序之后,...

  • 7企业进行微信小程序开发后能够赚钱吗?

    微信小程序 对于许多企业的发展是有助力作用的,因此,现在 许多公司在小程序出现已经开始申请自己的账号,一些提前开始运营 微信小程序 的公司已经取得了不错的成绩,...

  • 8传统企业进行微信小程序开发具有哪些好处呢?

    许多然错过了微信公众号的红利,那么在面对 微信小程序 的红利是,就不能错过了。对于传统企业来说, 微信小程序 可以成为他们转型升级的有一条道路,同时,目前处于小...

  • 9分析微信小程序的几大优势

    微信 小程序 成为最近比较热门的一个 话题 ,特别是 随着小程序各方面能力的不断提升 , 越来越多的企业希望通过开发小程序来弥补微信公众号在营销推广方面的不足,...

  • 10成都小程序开发公司解析微信小程序的几大特征

    微信小程序 在上线之初就收获了无数的目光,而随着 微信小程序 的不断更新,企业可以开发的微信小程序的功能也得到了增加,用户也可以得到更好的使用体验,因此,可以预...

  • 波浪
  • 波浪
  • 波浪
  • 波浪
业务咨询
加盟代理
售后服务
渠道合作
咨询电话
微信咨询
获得报价
回到顶部
400-606-5558
<--这段代码是专属于这个站点的:jutui.org--> <--此段代码添加在前。为保证统计准确,请勿将同一段代码添加到多个站点中。-->