Giter VIP home page Giter VIP logo

wxministore's Introduction

Hi there 👋

Github Stats

wxministore's People

Contributors

dependabot[bot] avatar qq675258207 avatar xiaoyao96 avatar zkl2333 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wxministore's Issues

淘宝小程序

我将这个库 迁移到淘宝小程序了,目前测试 page之间用store是没问题 可以获得的,
page和组件之间通讯 目前有问题 ,希望可以 探讨下怎么适配到淘宝小程序 ,我已经加你微信,麻烦通过 下
我的wx:110837675

关于 onShareAppMessage 是采用 pageListener 会失去图片

由于 onShareAppMessage 、 onReachBottom 、onPullDownRefresh等是触发性事件函数,所以不能归类为生命周期,也就是说,不能直接 pageListener[key].apply(this, arguments);对于触发性事件函数,我建议单独归类,同时采用赋值 o[key] = pageListener[key],但是有个前提就是 o[key]无效,才采用公用的。建议下个版本修改一下!

生命周期是直接执行,所以能够 pageListener[key].apply(this, arguments),触发事件不会直接执行,所以必须采用赋值,等到触发时执行!

官网解释:
https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onshareappmessageobject-object

首次下载小程序包,在小程序直播插件分包内调用单独的request.js getCurrentPages拿不到store内methods的方法

复现场景
用户为第一次下载小程序,进入小程序直播分包内,app.js调用request.js请求
返回结果后使用getCurrentPages().pop()为空 拿不到store methods内的方法
app.js内onLaunch和onShow第一时间拿不到getCurrentPages().pop()内方法需要加延时
其他情况是可以拿到的 在非page和components内还有其他方法可以拿到methods方法么
有什么方法可以兼容一下么 还是我的打开方式不对😂

setState后无法回调

在手机端的时候,经常出现,app.store.setState后无法执行回调的情况。

小程序的异步机制导致store获取数据为空,如何处理

在App.js的onLaunch中请求后台api获取用户信息,然后保存到store中
然后在首页onLoad中从store中获取用户信息,结果是空
我知道这是由于异步导致的,如何在页面中监听到store中有值了,然后获取值,并且渲染到页面中

期待数据监听更新啊

在App.js的onLaunch()中请求后端获取userInfo。然后要在首页index.js中监听到userInfo后,才能进行其它的业务,可是目前没这个功能啊,总不能用定时器去循环等待吧,太美中不足了,期待能早点更新数据监听

pageLisener 中如果使用onShareAppMessage会使得return值无效

` /* store.js */
pageLisener: {
onShareAppMessage(ops) {
if (ops.from === "menu") {
console.log("ShareAppMessage menu")
return {
title: "自定义标题1",
path: "/pages/loading/loading",
imageUrl: "xxxx"
}
}
}
}

这样设置,真机和开发者工具上 title ,imageUrl 无效; 另外如果我在pageA页面扩展了onShareAppMessage
/* pageA.js */
onShareAppMessage(ops) {
if (ops.from === "button") {
console.log("ShareAppMessage button")
return {
title: "自定义标题2",
imageUrl: 'xxxxxx',
path: "/pages/pDetail/pDetail?xxxx"
}
}
console.log('share end')
}

`
当点击右上角的分享 (ops.from === "menu"),控制台依然会输出‘share end’,
当点击自定义的分享 (ops.from === "button"),控制台不会输出‘share end’,
且2种情况title,imageUrl 都无效

完整更新历史

更新日志

1.2.8

[2019.11.27] F: 优化diff能力。

1.2.7

[2019.9.6] F: 修复删除state中的数组,删除的项会为null的问题。

1.2.6

[2019.6.26] A: 新增store.prototype.getState,用于读取store.$state的拷贝,防止对原状态进行误操作。

1.2.5

[2019.6.25] F: 修复setState为引用类型数据时视图可能不会更新。

1.2.3

[2019.4.15] A: 组件/页面内 新增useProp属性,指定当前组件/页面使用指定状态,提高性能。
[2019.4.15] U: store.setState加入diff算法,更加高效。

1.2.2

[2019.4.2] F: 修复pageLisener内部分周期执行时报错。

1.2.1

[2019.3.24] F: 修复使用plugins插件时,提示non-writable错误。(解决方案)
[2019.3.24] F: 对Component中lifetimes字段的兼容。

1.2

[2019.3.21] F:测试发现小程序原生的setData会默认深拷贝目标对象。所以导致了#3,目前已修复,也说明了setState后,各个页面的$state不再是完全引用的关系。
[2019.3.17] U:不再支持es5,并重写源码(es6),代码更少,做的更多,又恢复了$state完全引用(仅首次加载),修复了一些极端情况的bug。

1.1

[2018.11.29] A:新增局部状态模式, 可设置$state部分页面或组件可用,大幅提升性能。
[2018.11.16] A:支持es5。
[2018.10.31] A:拓展新增周期监听 pageLisener字段,可监听所有页面的所有生命周期事件。
[2018.10.30] A:拓展新增功能全局方法 methods字段,大幅优化setState性能。更新前需调整Store结构,请阅读Store对象参数详情

Object.entries

请问怎样在mystore.js,method方法中修改state中的值,其他页面调用这个方法

建议页面可以自定义只用到的store属性

像useStore属性,传一个数组为store.$state里的属性
例如 const store = new Store({a:1, b:2, c:3})
在Compoent({useProps: ['a']}), 这样这个页面的this.data.$state里就只挂载a属性

在new Store({state:{ },methods:{ })中,methods中的方法无法改变state 中的属性值,这个问题如何解决

业务场景:

登录的状态,token,与登录刷新token的方法,需要在页面里面调用登录,刷新token等逻辑的方法,目前关于token,登录态的处理是在页面方法的回调中改变的state中的相关token与登录态,当;逻辑比较复杂时,维护比较困难。代码如下:

// store.js
let store = new Store({
  state:{
     token:"",
     hasLogin:false,
   },
   methods:{
       // 刷新token
     refreshToken(token){
       //  ......
       // 无法直接设置state中的token
     },
   }
})

请问可以支持以上的设置吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.