小程序给我们暴露了两个参数要求和模块,需要用来在模块中加载其他模块,模块用来将模块中的方法暴露出去
模块。以前出口=function () {} >所以只要需要让第三方库的代码使用这种形式的出口就可以了
打一个回来的包,让它可以兼容微信小城的加载方式
git克隆https://github.com/reactjs/redux.git npm安装 #详细内容可以到回家的项目的package.json中查看 #这些命令是是使用webpack构建UMD模式的包,也就是说所有的代码,包括依赖的库都会被打包到一个文件中,并且自带一段模块加载代码,文件可以在dist目录下找到 npm运行构建:umd格式,,npm运行构建:umd格式 >之前用编辑器打开dist目录下的回来的。js文件
(函数webpackUniversalModuleDefinition(根、工厂){ 如果(typeof出口===韵蟆?,typeof模块==='对象') 模块。工厂出口=(); else if (typeof定义===δ堋?,define.amd) 定义([]、工厂); else if (typeof出口==='对象') 工厂出口[“终极版”)=(); 其他的 根(“终极版”)=工厂(); })(这个函数(){ … })这段代码是用来加载模块的,里面工厂的函数的返回的内容是用webpack提供的装入器组织起来的终极版的代码和第三方依赖。
-
<李>如果我们把这个文件拷贝到小程序中,只需要让程序能正常进入第三行代码,就能把回来的加载进来李>
<李>将第二行代码:如果(typeof出口===韵蟆?,typeof模块==='对象')修改成:如果(typeof模块==='对象')李>
<李>这样修改的原因是,在微信小程序的环境中是没有出口变量的,所以就没办法正确进入这个分支,删除之后就可以正确进入李>
<李>我们拷贝到填词目录下,那么我们在程序中使用时,只要当做是一个本地模块去要求就可以了var回来的=要求(“。/libs/redux.js”) 李>
<李>我们可以通过类似的方法,使用Webpack打包第三方库,就可以集成任何库了
李>
因为微信小程序的开发环境是定制的,暂时没有发现办法直接安装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安装- g remotedev-server remotedev——主机名=本地主机端口=5678 >之前因为没办法用npm安装到本地(微信小程序会尝试去加载项目目录中的所有js),所以这里使用全局安装,第二条命令是启动remotedev-server,主机名和端口分别指定为localhost和5678
在商店下集成devtool
const {createStore组成}=要求(“。/libs/redux.js”); const devTools=要求(“。/libs/remote-redux-devtools.js”) .default; const减速器=要求(“。/还原剂/index.js”) 函数configureStore () { 返回createStore(减速机、组合(devTools ({ 主机名:“localhost”, 端口:5678 安全:假 })); } 模块。出口=configureStore; >之前把devtool使用回来的的组合加到商店中去。主机名和端口是指定为之前启动remotedev-server启动时候指定的参数。保存之后重启一下小程序,如果没有报错的话就好了
可以在浏览器中访问localhost: 5678
不变的是Facebook开发的不可变数据集合。不可变数据一旦创建就不能被修改,是的应用开发更简单,允许使用函数式编程技术,比如惰性评估。微信小程序无法直接使用不可变的。js、下面就来说说微信小程序如何使用第三方库Immutable.js
不可变的使用了UMD模块化规范
(函数(全球、工厂){ typeof出口==='对象',,typeof模块!==ㄒ濉? # 63;模块。工厂出口=(): typeof定义===δ堋?,定义的。amd & # 63;定义(工厂): (全球。不可变=工厂()); }(这个函数(){使用严格的;var片$ 0=Array.prototype.slice; … }));在小程序中集成回来的/不变的铛第三方库的方法