本文最后更新于:May 13, 2023 pm
                
              
            
            
              微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,微信小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。
目录 全局数据共享(状态管理),为了解决组件之间数据共享的问题。在小程序中,可以使用 mobx-miniprogram 配合 mobx-miniprogram-bindings 实现全局数据共享。其中,mobx-miniprogram 用来创建 Store实例对象,mobx-miniprogram-bindings 用来把 Stroe 中的共享数据或方法,绑定到组件或页面中使用。
安装 npm install --save mobx-miniprogram npm install --save mobx-miniprogram-bindings
 
安装完毕后,仍然需要重新构建npm。 
创建mobx的Store实例对象 新创建一个store文件夹,在其中创建一个 store.js 的文件。这个文件专门用来创建store实例对象。
提示:可以理解成Java中的类,类中的成员变量私有化,只提供方法给外界使用从而达到访问成员变量。  
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import  {observable,action} from  'mobx-miniprogram' export  const  store = observable({   name:'墨水记忆' ,   url: 'www.tothefor.com' ,      get  site (){      return  this .name+"的链接为:" +this .url   },      updateName:action(function (newName ) {       this .name=newName   }),   updateUrl:action(function (newUrl ) {     this .url = newUrl   }) })
 
绑定Store成员到页面 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24   import  {createStoreBindings} from  'mobx-miniprogram-bindings' import  {store} from  '../../store/store'    Page({          onLoad (options )  {       this .storeBindings = createStoreBindings(this ,{         store,          fields: ['name' ,'url' ,'site' ],          actions: ['updateName' ,'updateUrl' ]        })     },          onUnload ( )  {       this .storeBindings.destroyStoreBindings()     }   })
 
使用Store中的成员 <van-button  type ="danger"  bindtap ="chN"  data-name ="DragonOne" > 点击改变Name</van-button >  <br /> <van-button  type ="danger"  bindtap ="chU"  data-url ="www.moreoj.cn" > 点击改变url</van-button >  <br /> <van-button  type ="danger" > {{name}}</van-button >  <br /> <van-button  type ="danger" > {{url}}</van-button >  <br /> <van-button  type ="danger" > {{site}}</van-button >  <br /> 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32   import  {createStoreBindings} from  'mobx-miniprogram-bindings' import  {store} from  '../../store/store'    Page({     chN (e ) {       this .updateName(e.target.dataset.name)     },     chU (e ) {       this .updateUrl(e.target.dataset.url)     },          onLoad (options )  {       this .storeBindings = createStoreBindings(this ,{         store,         fields: ['name' ,'url' ,'site' ],         actions: ['updateName' ,'updateUrl' ]       })     },          onUnload ( )  {       this .storeBindings.destroyStoreBindings()     },   })
 
绑定Store中的成员到组件中 <view >    <text > 这里是组件中的内容</text > <van-button  type ="danger"  bindtap ="chN"  data-name ="DragonOne" > 点击改变Name</van-button >  <br /> <van-button  type ="danger"  bindtap ="chU"  data-url ="www.moreoj.cn" > 点击改变url</van-button >  <br />    <van-button  type ="danger" > {{name}}</van-button >  <br /> <van-button  type ="danger" > {{url}}</van-button >  <br /> <van-button  type ="danger" > {{site}}</van-button >  <br /> </view > 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import  {storeBindingsBehavior} from  'mobx-miniprogram-bindings' import  {store} from  '../../store/store'  Component({   behaviors:[storeBindingsBehavior],   storeBindings:{      store,      fields: {       name: ()=> store.name,        url: (store )=> store.url,        site: 'site'       },     actions:{        updateName: 'updateName' ,       updateUrl: 'updateUrl'      }   },      methods: {     chN (e ) {       this .updateName(e.target.dataset.name)     },     chU (e ) {       this .updateUrl(e.target.dataset.url)     },   } })