微信小程序开发实战——使用第三方库Immutable.js
来源:互联网 发布:淘宝的冰裂杯有害吗 编辑:程序博客网 时间:2024/05/19 18:43
Immutable 是 Facebook 开发的不可变数据集合。不可变数据一旦创建就不能被修改,是的应用开发更简单,允许使用函数式编程技术,比如惰性评估。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.jsvar 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' ) }) }})
0 0
- 微信小程序开发实战——使用第三方库Immutable.js
- 微信小程序使用第三方库Underscore.js步骤详解
- 微信小程序使用第三方库(第三方js)问题
- 微信小程序使用第三方库(第三方js)问题
- 程序开发使用第三方库需要小心再小心
- angular2中使用第三方js库
- 第三方JS库
- iOS开发 WKWebView使用第三方库WebViewJavascriptBridge 以及js端处理
- iOS开发 WKWebView使用第三方库WebViewJavascriptBridge 以及js端处理
- Immutable.js 使用总结
- Immutable.js使用
- iOS开发—第三方百度地图
- ionic2在TypeScrpit里面使用第三方JS库
- angularjs2学习心得之使用第三方JS库
- 如何在 Vue.js 中使用第三方库
- 在 Vue.js 中使用任意 JavaScript 第三方库
- 在 Vue.js 中使用任意 JavaScript 第三方库
- 如何在 Vue.js 中使用第三方库
- 推荐系统源码
- android Px与Dp互转换
- HBase——使用Put迁移MySql数据到Hbase
- DOS之net命令的使用
- 【codeforces】C - Buggy Sorting
- 微信小程序开发实战——使用第三方库Immutable.js
- PAT(A) 1119 Pre- and Post-order Traversals (30)(数据结构)
- JS学习之ES6
- CSS中 !important 的使用
- Ubuntu14.04安装记录
- Android ImageView设置大小
- 2016年中国OTT盒子行业市场现状及发展前景分析
- 从零开始写一个Tomcat(叁)--请求解析
- PHP无限级分类实现(递归+非递归)