微信小程序使用第三方库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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
用js实现的抽象CSS圆角效果!!
May 03 Javascript
js 链式延迟执行DOME
Jan 04 Javascript
浅谈JS日期(Date)处理函数
Dec 07 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
浅谈jquery点击label触发2次的问题
Jun 12 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
webpack配置的最佳实践分享
Apr 21 Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 Javascript
React降级配置及Ant Design配置详解
Dec 27 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
Sep 16 Javascript
谈谈JavaScript中的垃圾回收机制
Sep 17 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
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
xtree.js 代码
2007/03/13 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
js实现小星星游戏
2020/03/23 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python简单实现AES加密和解密
2019/03/28 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
班级入场式解说词
2014/02/01 职场文书
触摸春天教学反思
2014/02/03 职场文书
机械专业求职信
2014/05/25 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
违纪检讨书范文
2015/01/27 职场文书