微信小程序使用第三方库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 相关文章推荐
javascript 基础篇3 类,回调函数,内置对象,事件处理
Mar 14 Javascript
js有序数组的连接问题
Oct 01 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
简单分析javascript中的函数
Sep 10 Javascript
Javascript实现base64的加密解密方法示例
Jun 27 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
jQuery操作cookie的示例代码
Jun 05 jQuery
Weex开发之WEEX-EROS开发踩坑(小结)
Oct 16 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 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 output buffering缓存及程序缓存深入解析
2013/07/15 PHP
PHP连接access数据库
2015/03/27 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
python计算auc指标实例
2017/07/13 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
几个SQL的面试题
2014/03/08 面试题
酒店值班经理的工作职责范本
2014/02/18 职场文书
反邪教警示教育方案
2014/05/13 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
湘江北去观后感
2015/06/15 职场文书
主婚人致辞精选
2015/07/28 职场文书
python 逐步回归算法
2021/04/06 Python