微信小程序全球状态管理和跨页面交流-微信商店就足够了
小程序开发
浏览:1244 次

现在市场上有很多小程序框架,看起来很高大上,但在实际应用中,它们并不能真正解决项目的痛点。通常,为了方便写作,他们会使用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地址: