在小程序中集成回来的/不变的铛第三方库的方法

  

  

小程序给我们暴露了两个参数要求和模块,需要用来在模块中加载其他模块,模块用来将模块中的方法暴露出去

        模块。以前出口=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;      …      }));      

在小程序中集成回来的/不变的铛第三方库的方法