-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
关于复杂业务组件的重用问题 #388
Comments
你说的这个样例,更好的方式是,login component 不走 dva 吧,比如我引入了 dva 是为了更好的组织你项目,也不一定非要处处都要使用 dva 的方式。 |
@nikogu 你的意思是component还是 extends React.Component的写法是吗, 但是actions和reducer好像不好放 |
对,既然本身的数据流跟其它组建无关,又要抽离独立的模块,就抽象成一个整体好了,不走 dva |
我倒觉得是有这种需求的,但还没仔细考虑过怎么处理,redux 的方案本身在处理这类包含数据处理的业务组件时就比较弱。 |
直接把数据 connect 到组件里。 |
用高阶组件组合, 内部逻辑都写一个组件,然后导入到UI组件,每次使用的时候,都是引入这个高阶组件。 import LoginHOC from "./loginHOC"
const Login = LoginHOC( UIComponent );
//LoginHOC 我们在这个组件写好我们的登录逻辑,例如拿到store的数据
//触发action等等,然后导出成值传给我们的UIComponent
//然后我们就可以把这个Login 组件在当前页面直接应用了 |
如果登录和注册都使用到 用户名、密码、验证码这种组合,怎么样在一个store去做处理呢? |
你说的的组合是指UI的组合而已吧,因为登录注册在我的项目里是两个不同的业务流程,最好是封装成两个不同的高阶组件, |
最近也遇到这种问题,有一些页面ui和逻辑都一致,简单说就是长得一样。只是配置不同。这种情况下把按照action-reducer的写法会非常苦,作高阶组件封装,也免不了作各种适配吧。 |
参考 reduxjs/react-redux#278
关于复杂业务组件的重用问题,在dva的结构下有没有一些好的思路.
还是以一个具体的场景来描述这个问题吧.
比如登录模块,按照dva的架构,登录的代码分散在三个部分:
假如需要复用登录模块,涉及到下面几个问题:
目前的情况,要使用登录模块需要 app.model(login), route中配置登录组件, 从组件复用的角度来看,是否 将model直接绑定到component 会更方便?
比如部分项目中需要显示注册链接,部分项目又不需要,这些配置存放在哪个模块,如何传入组件中
dva中使用了css module 如何对登录的样式进行部分调整?
dva应用到实际项目中,特别是一定规模的项目,多少会涉及到复杂业务组件的复用问题,希望能分享一下相关的思路。
The text was updated successfully, but these errors were encountered: