微信小程序使用第三方库Immutable.js实例详解


Posted in Javascript onSeptember 27, 2016

前言

Immutable JS 提供一个惰性 Sequence,允许高效的队列方法链,类似 map 和 filter ,不用创建中间代表。immutable 通过惰性队列和哈希映射提供 Sequence, Range, Repeat, Map, OrderedMap, Set 和一个稀疏 Vector。

微信小程序无法直接使用require( 'immutable.js' )进行调用,需要对下载的Immutable代码进行修改,才能使用。

原因分析

Immutable使用了UMD模块化规范

(function (global, factory) {
 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
 typeof define === 'function' && define.amd ? define(factory) :
 (global.Immutable = factory());
}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;

....

}));

UMD的实现很简单,先判断是否支持Node.js(CommonJS)模块规范,存在则使用Node.js(CommonJS)方式加载模块。再判断是否支持AMD,存在则使用AMD方式加载模块。前两个都不存在,则将模块公开到全局。

exports、module必须都有定义,才能以CommonJS加载模块。通过测试,微信小程序运行环境exports、module并没有定义。

解决方法

修改Immutable代码,注释原有模块导出语句,使用module.exports = factory() 强制导出

(function(global, factory) {
 /*
 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
 typeof define === 'function' && define.amd ? define(factory) :
 (global.Immutable = factory());
 */

 module.exports = factory();

}(this, function() {

使用Immutable.js

//index.js

var Immutable = require( '../../libs/immutable/immutable.modified.js' );

//获取应用实例
var app = getApp();

Page( {

 onLoad: function() {
 //console.log('onLoad');
 var that = this;

 var lines = [];

 lines.push( "var map1 = Immutable.Map({a:1, b:2, c:3});" );
 var map1 = Immutable.Map({a:1, b:2, c:3});
 lines.push( "var map2 = map1.set('b', 50);" );
 var map2 = map1.set('b', 50);
 lines.push( "map1.get('b');" );
 lines.push(map1.get('b'));
 lines.push( "map2.get('b');" );
 lines.push(map2.get('b')); 

 this.setData( {
  text: lines.join( '\n' )
 })
 }
})

微信小程序使用第三方库Immutable.js实例详解

总结

以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
Jquery AutoComplete自动完成 的使用方法实例
Mar 19 Javascript
根据出生日期自动取得星座的js代码
Jul 20 Javascript
快速掌握Node.js模块封装及使用
Mar 21 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
详解JS中的立即执行函数
Feb 24 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
Feb 05 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
Aug 13 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 Javascript
原生js实现无缝轮播图效果
Jan 28 Javascript
Ajax实现页面无刷新留言效果
Mar 24 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
Sep 27 #Javascript
微信小程序 开发指南详解
Sep 27 #Javascript
纯JavaScript 实现flappy bird小游戏实例代码
Sep 27 #Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 #Javascript
angular基于路由控制ui-router实现系统权限控制
Sep 27 #Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
Sep 26 #Javascript
javascript动画之模拟拖拽效果篇
Sep 26 #Javascript
You might like
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
收音机术语解释
2021/03/01 无线电
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
vue.js数据绑定操作详解
2018/04/23 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python函数的5种参数详解
2017/02/24 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python实现对变位词的判断方法
2020/04/05 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
python 如何调用远程接口
2020/09/11 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
会计专业毕业生自荐信范文
2013/12/20 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
个人求职信格式范文
2015/03/20 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Go语言测试库testify使用学习
2022/07/23 Golang