微信小程序使用第三方庫(kù)Immutable.js實(shí)例詳解
前言
Immutable JS 提供一個(gè)惰性 Sequence,允許高效的隊(duì)列方法鏈,類似 map 和 filter ,不用創(chuàng)建中間代表。immutable 通過惰性隊(duì)列和哈希映射提供 Sequence, Range, Repeat, Map, OrderedMap, Set 和一個(gè)稀疏 Vector。
微信小程序無法直接使用require( 'immutable.js' )進(jìn)行調(diào)用,需要對(duì)下載的Immutable代碼進(jìn)行修改,才能使用。
原因分析
Immutable使用了UMD模塊化規(guī)范
(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的實(shí)現(xiàn)很簡(jiǎn)單,先判斷是否支持Node.js(CommonJS)模塊規(guī)范,存在則使用Node.js(CommonJS)方式加載模塊。再判斷是否支持AMD,存在則使用AMD方式加載模塊。前兩個(gè)都不存在,則將模塊公開到全局。
exports、module必須都有定義,才能以CommonJS加載模塊。通過測(cè)試,微信小程序運(yùn)行環(huán)境exports、module并沒有定義。
解決方法
修改Immutable代碼,注釋原有模塊導(dǎo)出語句,使用module.exports = factory() 強(qiáng)制導(dǎo)出
(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' );
//獲取應(yīng)用實(shí)例
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' )
})
}
})

總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望能對(duì)大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
- activemq整合springboot使用方法(個(gè)人微信小程序用)
- 微信小程序登錄session的使用
- 微信小程序提取公用函數(shù)到util.js及使用方法示例
- 微信小程序 使用騰訊地圖SDK詳解及實(shí)現(xiàn)步驟
- 微信小程序使用第三方庫(kù)Underscore.js步驟詳解
- 基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器
- 微信小程序 富文本轉(zhuǎn)文本實(shí)例詳解
- 微信小程序富文本渲染引擎的詳解
- 如何去除富文本中的html標(biāo)簽及vue、react、微信小程序中的過濾器
- 微信小程序?qū)崿F(xiàn)富文本圖片寬度自適應(yīng)的方法
- 微信小程序整合使用富文本編輯器的方法詳解
相關(guān)文章
使用JS組件實(shí)現(xiàn)帶ToolTip驗(yàn)證框的實(shí)例代碼
這篇文章主要介紹了使用JS組件實(shí)現(xiàn)帶ToolTip驗(yàn)證框的實(shí)例代碼,需要的朋友可以參考下2017-08-08
js點(diǎn)擊返回跳轉(zhuǎn)到指定頁(yè)面實(shí)現(xiàn)過程
這篇文章主要為大家詳細(xì)介紹了js點(diǎn)擊返回跳轉(zhuǎn)到指定頁(yè)面實(shí)現(xiàn)過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-04-04
原生JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)版計(jì)算器
這篇文章主要為大家詳細(xì)介紹了原生JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
JS對(duì)select控件option選項(xiàng)的增刪改查示例代碼
Javascript操作select是表單中比較常見的,大家可以在網(wǎng)上搜索到很多的相關(guān)資料,接下來為大家詳細(xì)介紹下,JS動(dòng)態(tài)操作select中的各種方法,感興趣的朋友可以參考下2013-10-10
webpack 開發(fā)和生產(chǎn)并行設(shè)置的方法
這篇文章主要介紹了webpack 開發(fā)和生產(chǎn)并行設(shè)置的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
淺談JavaScript中小數(shù)和大整數(shù)的精度丟失
下面小編就為大家?guī)硪黄獪\談JavaScript中小數(shù)和大整數(shù)的精度丟失。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
封裝一個(gè)公用Echarts圖表組件的3種模板代碼示例
這篇文章主要給大家介紹了關(guān)于封裝一個(gè)公用Echarts圖表組件的3種模板,定義圖表公共樣式是為了統(tǒng)一同一網(wǎng)站各頁(yè)面圖表的基礎(chǔ)樣式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02

