微信小程序使用第三方庫(kù)Immutable.js實(shí)例詳解
前言
Immutable JS 提供一個(gè)惰性 Sequence,允許高效的隊(duì)列方法鏈,類似 map 和 filter ,不用創(chuàng)建中間代表。immutable 通過(guò)惰性隊(duì)列和哈希映射提供 Sequence, Range, Repeat, Map, OrderedMap, Set 和一個(gè)稀疏 Vector。
微信小程序無(wú)法直接使用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è)都不存在,則將模塊公開(kāi)到全局。
exports、module必須都有定義,才能以CommonJS加載模塊。通過(guò)測(cè)試,微信小程序運(yùn)行環(huán)境exports、module并沒(méi)有定義。
解決方法
修改Immutable代碼,注釋原有模塊導(dǎo)出語(yǔ)句,使用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í)或者工作帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
- 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、微信小程序中的過(guò)濾器
- 微信小程序?qū)崿F(xiàn)富文本圖片寬度自適應(yīng)的方法
- 微信小程序整合使用富文本編輯器的方法詳解
相關(guān)文章
讓textarea自動(dòng)調(diào)整大小的js代碼
讓textarea自動(dòng)調(diào)整大小的js代碼,需要的朋友可以參考下。2011-04-04javascript 同時(shí)在IE和FireFox獲取KeyCode的代碼
以前一直在IE8中測(cè)試網(wǎng)站,后來(lái)寫的一部分含有Ajax的代碼出現(xiàn)了故障,不得已下載了Firefox以及它的插件Firebug,才發(fā)現(xiàn),F(xiàn)F不支持windows.event事件。于是換了一種思路。2010-02-02小程序自定義導(dǎo)航欄兼容適配所有機(jī)型(附完整案例)
這篇文章主要介紹了小程序自定義導(dǎo)航欄兼容適配所有機(jī)型(附完整案例),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04jquery實(shí)現(xiàn)select下拉框美化特效代碼分享
這篇文章主要介紹了jquery實(shí)現(xiàn)select下拉框美化特效,實(shí)現(xiàn)效果簡(jiǎn)潔大方,推薦給大家,有需要的小伙伴可以參考下。2015-08-08微信小程序通過(guò)uni-app進(jìn)行全局分享
這篇文章主要介紹了微信小程序通過(guò)uni-app進(jìn)行全局分享,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,需要的朋友可以收藏下2021-11-11JavaScript Math 對(duì)象常用方法總結(jié)
下面小編就為大家?guī)?lái)一篇JavaScript Math 對(duì)象常用方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-04-04js采用map取到id集合組并且實(shí)現(xiàn)點(diǎn)擊一行選中一行
本文為大家介紹下如何使用js采用map取到id集合組,并且點(diǎn)擊一行選中一行2013-12-12three.js著色器材質(zhì)的內(nèi)置變量示例詳解
這篇文章主要給大家介紹了關(guān)于three.js著色器材質(zhì)內(nèi)置變量的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08