Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何实现page里面的component都能有一些自己独有的state #398

Open
CoolBerry opened this issue Jul 16, 2019 · 4 comments
Open
Labels
enhancement New feature or request

Comments

@CoolBerry
Copy link

V0.2.4

现在global state与page之间的单向传递已经很不错了。
但是现在page到页面的component,依然还有类似的问题。

要如何比较合理的实现component有一部分是自己独有的state,并且有一部分page的state呢?

@CoolBerry
Copy link
Author

CoolBerry commented Jul 16, 2019

当前的设计来说,似乎page必须要保存page里面全部需要的数据,而不能让每一个component来单独管理。。。 那其实就失去了部分分立的小功能区的制作模式。

举一个实际的例子可能更好理解,比如app有bottom navigation bar,然后可以切换,我现在的设计是把整体做成一个page,然后navigation bar是一个component,bar上面就是有很多component,进行切换。不知道这样的设计有没有什么问题。或者会不会有更合理的方式来做这种效果

@zjuwjf zjuwjf added the enhancement New feature or request label Jul 16, 2019
@zjuwjf
Copy link
Contributor

zjuwjf commented Jul 16, 2019

就 bottom navigation bar 问题而言,似乎是嵌套4个独立的Page(独立store),更加贴切。类似于独立Fragment。

但就component保持自己独有的state话题:
1、如果要保持独立的state, 那么就它应该有独立的store。

2、如果要保持独立的props,可以参考LocalState

所以有没有更多必要的需求,要求component保持独立状态?

@CoolBerry
Copy link
Author

CoolBerry commented Jul 17, 2019

比如一个大型App的首屏,类似淘宝,天猫这种级别,通常来说,这个page都会比较复杂,数据非常多。所以从设计角度来说,是不是可以不让page来管理component里面的state是一个比较好的做法呢?这样component里面可以自己通过生命周期函数来实现加载或者更新的逻辑,而不必让page知道。

如果component的state都在page里面存在,那么写component的话和做一个受控的stateless widget,全部props都由page提供的效果可能会差不多,但stateless写起来要方便很多。不知道设计component这一层的主要核心用意是哪里,可能我没理解到位。

@hasonguo
Copy link

hasonguo commented Apr 2, 2020

@CoolBerry 看下这个,是不是和你的问题一致,state是否可以由独立的数据,你解决了吗?#636

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants