微信小程序心得(原创)

前言:

  • 整体来说,小程序提供的IDE还是比较好用的,入门也比较简单。模拟器,兼容性都很好。开发效率很高
  • 政策原因,金融类小程序不能有交易、购买。但是其他类别不受限制。而且从技术上来说,也是一个新的技能。
  • 对一些工具类的app可以起到很好的替代作用!尤其Android下可以生成桌面图标。
  • 最新版本已经增加了微信小游戏,集成了一些游戏常用操作框架。

开发平台配置:

  • 开发者需要以公司名义申请AppId,比较严格,要提供一系列公司相关资料。
  • 个人开发者目前也可以申请,但是个人开发者没有支付权限,不能开发支付功能。
  • 名称要起好,有些名称要提交资料审核。
  • 除了管理员有所有权限,其他开发人员需要填加权限(20名),体验着需要填加体验者权限(40名)目前政策可能有变化。
  • request,upload等接口调用都需要配置白名单,每个最多绑定5个域名;协议必须是https。而且每月只能修改三次。

经验总结:

  • 调试集成了chrome调试工具,上手应该都比较快,基本功能都有,很好用。版本都在快速更新中。
  • 整个小程序所有分包大小不超过 4M,单个分包/主包大小不能超过 2M。已经比开始的时候好很多了。开始的时候包大小只有1M。。可怜啊,不过这个限制也是为了提高加载速度。
  • 导航层级不能超过5级,不然会有问题
  • 注意生命周期、wxss的写法问题。
  • 数据绑定及setDate方法的使用
  • api在快速迭代、丰富中,大家要注意经常查看api文档
  • Android真机下报request: fail ssl hand shake error(ssl证书握手错误)服务器需要支持TLS1.2及以上版本
  • 性能优化很重要,具体参考官方文档,写的很详细


目录结构

  • 每个页面包括四个文件:.js,.json,.wxml,.wxss(推荐都有,不要省略)
  • 入口文件app.js,app.json,app.wxss。定义一些全局的方法,数据,样式等。整个项目生命周期中只执行一次

语法与html异同

  • js 为对象字面量写法。我们目前都已经推荐这种写法,上手应该很快
  • wxml已经跟html完全不同。不支持div等。
  • wxss跟css大部分相同,但是不支持一些选择器


app.js 入口程序,初始化生命周期及全局变量、方法等

var RQ = require('util/request.js'); // 引入
App({  
    onLaunch: function () {    
        //console.log('App Launch')  
    },  
    onShow: function () {       
    },  
    onHide: function () {    
        //console.log('App Hide')  
    },   
    globalData: {    
        host:'https://prefgw.leadfund.com.cn',    
        imghost:'http://testwww.leadfund.com.cn'  
    },     
    publicParam:{
        terminal : 'APP',     
        version : "1.0",     
        reqTime : "Thu, 22 Dec 2016 06:25:57 GMT",     
        token: wx.getStorageSync('TOKEN') || "",     
        custId: wx.getStorageSync('CUSTID') || ""  
    }
})复制代码


wx.request进行了二次封装,增加功能

/* * @method request, 参数为对象 */ 
var _encrypts = require('./encrypts.js'); 

// 对象合并
function jsonJoin(j1, j2) {    
    var resultObject = {};    
    for(var attr in j1){        
        resultObject[attr]=j1[attr];    
    };    
    for(var attr in j2){        
        resultObject[attr]=j2[attr];    
    };    return resultObject;
}; 

//对微信提供request进行二次封装
function request(){    
    var app = getApp();    
    var param = (Object.prototype.toString.call(arguments[0]) === '[object Object]') ? arguments[0] : console.error('参数必须是对象');        
    wx.request({      
        url: app.globalData.host + param.url,      
        data: {        
            data:_encrypts.encrypts(JSON.stringify(jsonJoin(app.publicParam, param.data)))      
        },      
        header: {        
            'content-type': 'application/json'      
        },      
        success: function(res) {         
            typeof param.success === "function" ? param.success(res) : console.error('回调需要是function');      
        },      
        fail:function(res) {        
            console.log(res);        
            typeof param.fail === "function" ? param.fail() : console.error('回调需要是function');      
        }    
    }
)}

// 方法导出
module.exports = {   
    request: request
}复制代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值