小さいプログラムの中でredux/immuttable/thunkの第三者の倉庫の方法を集積します。
はじめに
プログラムは二つのパラメータrequireとmoduleを暴露しました。requireはモジュールに他のモジュールをロードするために使用します。moduleはモジュール中の方法を暴露します。
二、ReduxのWeChatパッケージの構築
Reduxパッケージを作って、WeChat小城のロード方法に対応できるようにします。、このファイルを小さいプログラムにコピーすれば、プログラムを正常に第三行のコードに入れるだけで、Reduxを にロードすることができます。は、2行目のコード:if(type of export===object'&type of module=='object')を、if(type of module==object') に変更します。このように修正された理由は、WeChatウィジェットの環境においてexport変数がないため、正確にこの分岐に入ることができなくなり、削除したら正確に に入ることができるからです。私達はlibsディレクトリにコピーします。プログラムで使う時、ローカルモジュールとしてrequireに行けばいいです。var redux=require('./libs/redux.js') 、私達は類似の方法でWebpackを使って第三者の倉庫を包装してもいいです。
三、集積Redux-devtools
WeChatアプレットの開発環境はカスタマイズされていますので、redux-devtoolのプラグインを直接インストールする方法はありません。
remote-redux-devtoolsをインストールします。
オリジナルのremote-redux-devtoolsで使用する一つのwebsocketの依存は元のWebsocketを使用します。小さいプログラムはサポートしていませんので、小さいプログラムに変更する必要があります。websocketを実現して、良いコードを修正します。https://github.com/poetries/wx-redux-immutable-template/blob/master/wx-redux-immutable-template/public/libs/remote-redux-devtools.js。
プロジェクトディレクトリにコードをダウンロードすればいいです。
インストールと起動remotedev-server
集積devtool
storeでdevtoolを集積する
ブラウザでロカホストにアクセスできます。5678
四、小プログラムでimmuttableを統合する
ImmutableはFacebookが開発した可変データの集合である。可変でないデータは一旦作成したら修正できません。はい、アプリケーションの開発はもっと簡単で、関数式プログラミング技術を使用することができます。例えば、不活性評価です。WeChatアプレットは直接Immutable.jsを使用できません。以下はWeChatアプレットの使い方を説明します。
ImmutableはUMDモジュール仕様を使用しています。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
プログラムは二つのパラメータrequireとmoduleを暴露しました。requireはモジュールに他のモジュールをロードするために使用します。moduleはモジュール中の方法を暴露します。
module.exports = function(){}
したがって、第三者ライブラリのコードにこの形式のexportを使わせる必要があります。二、ReduxのWeChatパッケージの構築
Reduxパッケージを作って、WeChat小城のロード方法に対応できるようにします。
git clone https://github.com/reactjs/redux.git
npm install
# redux package.json
# webpack UMD 。 , , , dist
npm run build:umd && npm run build:umd
エディタでdistディレクトリのredux.jsファイルを開きます。
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["Redux"] = factory();
else
root["Redux"] = factory();
})(this, function() {
...
})
このコードはモジュールをロードするためのもので、中のfactory関数の返却内容はwebpackで提供されたloaderで組織されたreduxのコードと第三者依存です。WeChatアプレットの開発環境はカスタマイズされていますので、redux-devtoolのプラグインを直接インストールする方法はありません。
remote-redux-devtoolsをインストールします。
オリジナルのremote-redux-devtoolsで使用する一つのwebsocketの依存は元のWebsocketを使用します。小さいプログラムはサポートしていませんので、小さいプログラムに変更する必要があります。websocketを実現して、良いコードを修正します。https://github.com/poetries/wx-redux-immutable-template/blob/master/wx-redux-immutable-template/public/libs/remote-redux-devtools.js。
プロジェクトディレクトリにコードをダウンロードすればいいです。
インストールと起動remotedev-server
npm install -g remotedev-server
remotedev --hostname=localhost --port=5678
npmでローカルにインストールできないので、ここでグローバルインストールを使用します。第二のコマンドはremotedev-serverを起動します。hostnameとportはそれぞれlocal hostと5678に指定します。集積devtool
storeでdevtoolを集積する
const {createStore, compose} = require('./libs/redux.js');
const devTools = require('./libs/remote-redux-devtools.js').default;
const reducer = require('./reducers/index.js')
function configureStore() {
return createStore(reducer, compose(devTools({
hostname: 'localhost',
port: 5678,
secure: false
})));
}
module.exports = configureStore;
devtoolをreduxのcomposeにstoreに加える。hostnameとportは、以前に起動したremotedev-server起動時に指定されたパラメータです。保存してからもう一度プログラムを再起動してください。エラーがなければOKです。ブラウザでロカホストにアクセスできます。5678
四、小プログラムでimmuttableを統合する
ImmutableはFacebookが開発した可変データの集合である。可変でないデータは一旦作成したら修正できません。はい、アプリケーションの開発はもっと簡単で、関数式プログラミング技術を使用することができます。例えば、不活性評価です。WeChatアプレットは直接Immutable.jsを使用できません。以下はWeChatアプレットの使い方を説明します。
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;
....
}));
Immutableコードを修正し、既存のモジュールにコメントをエクスポートし、module.export=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() {
修正したimmuttableを小プログラムに導入すればいいです。以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。