前言
Immutable JS 提供一個惰性 Sequence,允許高效的隊列方法鏈,類似 map 和 filter ,不用創(chuàng)建中間代表。immutable 通過惰性隊列和哈希映射提供 Sequence, Range, Repeat, Map, OrderedMap, Set 和一個稀疏 Vector。
微信小程序無法直接使用require( 'immutable.js' )進行調用,需要對下載的Immutable代碼進行修改,才能使用。
原因分析
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的實現(xiàn)很簡單,先判斷是否支持Node.js(CommonJS)模塊規(guī)范,存在則使用Node.js(CommonJS)方式加載模塊。再判斷是否支持AMD,存在則使用AMD方式加載模塊。前兩個都不存在,則將模塊公開到全局。
exports、module必須都有定義,才能以CommonJS加載模塊。通過測試,微信小程序運行環(huán)境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' ) }) } })
總結
以上就是這篇文章的全部內容了,希望能對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
更多WeChat アプレットでのサードパーティ ライブラリ Immutable.js の使用例の詳細な説明相關文章請關注PHP中文網(wǎng)!

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)