微信小程序全球状态管理和跨页面交流-微信商店就足够了

小程序开发


浏览:1220 次

现在市场上有很多小程序框架,看起来很高大上,但在实际应用中,它们并不能真正解决项目的痛点。通常,为了方便写作,他们会使用vue写作方法进行修改。然而,小程序本身具有强大的组件化、开发、调试、发布、灰度、回滚、报告、统计、监控和最近的云功能,有时确实不需要查看其他框架的两个文档进行开发。

经过一段时间的小程序开发,发现小程序目前的痛点确实是全局状态管理和跨页面通信,就像状态管理的vuex一样。尽管有类似的Redux状态管理库,但使用起来很麻烦。有时需要定义全局数据缓存,但这是下一个最佳策略。

最近,我看到上帝编写了Westore框架或图书馆。别再担心我的编程了。下面是此框架的使用介绍。

1、 页面结构

页面结构

项目结构和本机目录没有区别,但主要是添加diff.js,create。js并存储在utils js中diff是核心库文件,create主要用于页面注册,store用于管理全局数据中心。一目了然吗。

2、 页面注册和组件注册

创建页面

要创建页面,您只需要传入两个参数。存储是从根节点注入的。所有子组件都可以通过此存储访问。本机方法使用相同,但不影响。这update()类似于这个SetData(),但是这个update调用的SetData是diff,所以传递的数据更少。

从“../../store”导入存储

从“../../utils/create”导入创建

常量应用=获取应用()

创建(存储{

onLoad:函数(){

if(app.globalData.userInfo){

此存储数据。用户信息=app.globalData.userInfo

此存储数据。hasUserInfo=真

this.update()

}否则如果(this.data.canIUse){

app。userInfoReadyCallback=res=>{

此存储数据。userInfo=资源用户信息

此存储数据。hasUserInfo=真

this.update()

}

}其他{

wx.获取用户信息({

成功:res=>{

app全局数据。userInfo=资源用户信息

此存储数据。userInfo=资源用户信息

此存储数据。hasUserInfo=真

this.update()

}

})

}

}

})

绑定数据

与以前的写入方法没有区别,Data被用作绑定数据源。

创建零部件

与创建页面不同,您只需要传递一个参数来创建组件,而不是存储,因为它是从根节点注入的。

从“../../utils/create”导入创建

创建({

就绪:函数(){

//你可以用这个。在这里存储

},

方法:{

//你可以用这个。在这里存储

}

})

跨页面同步数据

使用网站时,您不需要关心跨页面数据同步。你只需要专注于此。存储数据,并在修改后随时调用更新

它是否易于使用,并且此更新具有比本机setData更好的性能和智能。

商店库的作者GitHub地址: