首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

具有mobx store的可重用子组件,我是否应该引用父store到子store?

具有mobx store的可重用子组件,是否应该引用父store到子store,取决于具体的业务需求和设计架构。下面是一些考虑因素:

  1. 单一数据源原则:mobx鼓励使用单一数据源的原则,即所有的状态都应该集中存储在一个store中。如果父组件的store已经包含了子组件所需的所有状态,那么子组件可以直接引用父store,遵循单一数据源原则。
  2. 组件的独立性:如果子组件是一个可重用的组件,它可能在不同的上下文中使用,而这些上下文可能具有不同的数据需求。在这种情况下,子组件应该保持独立性,不应该直接引用父store。相反,父组件可以通过props将必要的数据传递给子组件。
  3. 组件的复杂性:如果子组件非常简单,并且只需要访问父组件store中的一小部分状态,那么直接引用父store可能是合理的。但是,如果子组件需要访问大量的状态或者需要执行复杂的数据操作,那么将父store引用到子store可能更好,以保持代码的可维护性和可测试性。

总结来说,是否应该引用父store到子store取决于组件的独立性、复杂性和数据需求。在设计时,需要综合考虑这些因素,并根据具体情况做出决策。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(TBCAS):https://cloud.tencent.com/product/tbcs
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tencent-metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Mobx与Redux异同

    描述 Redux作者说过,如果你不知道是否需要Redux,那就是不需要。在判断是否需要使用Mobx与Redux之前,我们首先需要知道他们究竟是要解决什么问题,以及当前是否遇到了这个问题。...组件更新一个状态,可能有多个组件,兄弟组件共用,实现困难。 这种情况下继续使用提取状态组件方法你会发现很复杂,而且随着组件增多,嵌套层级加深,这个复杂度也越来越高。...对于Mobx与Redux异同这个问题,是最近在找实习时候遇到,分别为react mobx与react redux作简单示例,文中示例代码都在https://codesandbox.io/s/...MobX背后哲学很简单: 任何源自应用状态东西都应该自动地获得,其中包括UI、数据序列化等等,核心重点就是: MobX通过响应式编程实现简单高效,扩展状态管理。...或许有人需要减少编写代码行数,那么就可能会提到Redux有太多样板代码,而应该使用Mobx,可以减少xxx行代码。

    93020

    2023年了,还是选择 MobX

    继承性:面向对象编程提供了继承机制,通过继承,子类可以继承属性和方法,并在此基础上进行扩展和修改。这种继承机制可以避免代码重复,提高代码重用性和可维护性。...代码复用:面向对象编程提供了模块化机制,可以将代码分解成多个模块,实现代码复用和重构。这种模块化机制可以使得代码更加易于管理和维护,提高了代码重用性和可维护性 这是一个教科书式回答。...总的来说,在抽象能力上,面向对象和函数式编程都具有其独特优势,可以根据具体应用场景选择适合编程范式。 又一个教科书式回答,谁都不得罪,请收下膝盖!...可不变数据通常只需要全等比较(===) 就可以判断是否变更。而可变数据引用可能是固定。 —— 镜像。...应用到视图 接下来我们讨论如何将我们 Store 注入视图,以及这些 Store 对象生命周期管理。 注入视图层 视图注入有两种方式。

    44330

    常见react面试题

    React组件命名推荐方式是哪个? 通过引用而不是使用来命名组件displayName。...和解最终目标是根据新状态,以最有效方式更新用户界面。如果我们知道用户界面的某一部分不会改变,那么没有理由让 React弄清楚它是否应该更新渲染。...尤其是高并发访问情况,会大量占用服务端CPU资源; 2)开发条件受限 在服务端渲染中,只会执行componentDidMount之前生命周期钩子,因此项目引用第三方库也不可用其它生命周期钩子,...对React插槽(Portals)理解,如何使用,有哪些使用场景 React 官方对 Portals 定义: Portal 提供了一种将节点渲染存在于组件以外 DOM 节点优秀方案 Portals...最典型应用场景:当组件具有overflow: hidden或者z-index样式设置时,组件有可能被其他元素遮挡,这时就可以考虑要不要使用Portal使组件挂载脱离组件

    3K40

    高频React面试题及详解

    框架好处: 组件化: 其中以 React 组件化最为彻底,甚至可以函数级别的原子组件,高度组件化可以是我们工程易于维护、易于组合拓展。...React组件间通信方式: 组件组件通讯: 组件可以向组件通过传 props 方式,向组件进行通讯 组件组件通讯: props+回调方式,组件组件传递props进行通讯,此props...为作用域为组件自身函数,组件调用该函数,将组件想要传递信息,作为参数,传递组件作用域中 兄弟组件通信: 找到这两个兄弟节点共同节点,结合上面两种方式由节点转发信息进行通信 跨层级通信...获取Provider中store,通过store.getState()获取整个store tree 上所有state 包装原组件: 将state和action通过props方式传入组件内部wrapWithConnect...state状态进行比较,从而确定是否调用this.setState()方法触发Connect及其组件重新渲染 redux与mobx区别?

    2.4K40

    前端react面试题指北

    不过,pureComponent中 shouldComponentUpdate() 进行是浅比较,也就是说如果是引用数据类型数据,只会比较不是同一个地址,而不会比较这个地址里面的数据是否一致。...什么是 Props Props 是 React 中属性简写。它们是只读组件,必须保持纯,即不可变。它们总是在整个应用中从父组件传递组件组件永远不能将 prop 送回组件。...)); o 支持订阅store变更(subscribe(listener)); 异步流∶ 由于Redux所有对store状态变更,都应该通过action触发,异步任务(通常都是业务或获取数据任务...,且没有任何其他影响数据 对比总结: redux将数据保存在单一store中,mobx将数据保存在分散多个store中 redux使用plain object保存数据,需要手动处理变化后操作;mobx...只要组件重新渲染了,即使传入组件 props 未发生变化,那么子组件也会重新渲染,进而触发 render (2)重新渲染 render 会做些什么?

    2.5K30

    TS+React+Router+Mobx+Koa打造全栈应用

    有两个作用,一个是让你能够在调用时this.props.history得到正确推导,一个是声明了这个component需要接收到组件传递参数。...注入实例 有两种方法注入实例 一种是通过mobx-react提供组件包裹,这种方法将会把store注入...中,类似上文提到方式,组件再获取。...在使用mobx时候不太能确定哪些地方重新进行了渲染,准确不知道应该在哪些地方添加@observer修饰。不太喜欢这种不能掌握变化感觉,当然也可能是对virtualDOM了解不够。...而相关文档没能在react中找到,因此又统一建事件监听器绑定到了他们组件上 Github 以上都是瞎编

    1.8K70

    react 数据管理方案:redux 还是 mobx

    ) } } export default App; 使用 mobx 时,借鉴了 redux 架构优点: 单一数据源,这样避免了组件...、组件状态同步问题 可以做到让组件无状态化 使用 Provider 注入,让 store actions 可以在组件中,通过 props 访问使用 下面是一些不同点: mobx 使用是 @inject...mobx 在大项目中扩展能力 redux 方案,本质上还是通过添加更多 switch 语句来实现扩展,将 store 分支节点 reducer 分散不同文件,再通过工具函数combineReducers...mobx 方案扩展非常简单,需要扩展 store 和 actions。并且,actions 和 store 扩展方式完全一致,通过给类添加成员: ? ?...结论 为了不加班,mobx 这边。 参考 Mobx 思想实现原理

    2.1K11

    数据流管理方案 | Redux 和 MobX 哪个更好?

    真正前端开发,不仅仅要面试造火箭,实际工作中依然需要这样能力。 数据流管理方案有哪些? 基于 props 单向数据流 ->组件通信 原理讲解:这是最常见、也是最好解决一个通信场景。...React 数据流是单向组件可以直接将 this.props 传入组件,实现-通信。 ?...->组件通信 考虑 props 是单向组件并不能直接将自己数据塞给组件,但 props 形式也可以是多样。...假如组件传递给组件是一个绑定了自身上下文函数,那么子组件在调用该函数时,就可以将想要交给组件数据以函数入参形式给出去,以此来间接地实现数据从子组件组件流动。 ?...兄弟组件通信 兄弟组件之间共享了同一个组件,如下图所示,这是一个非常重要先决条件。 ? ? 在上面的组件间通信中,直接兄弟间通信需要借助组件实现。

    2K21

    react 数据管理方案:redux 还是 mobx

    ) } } export default App; 使用 mobx 时,借鉴了 redux 架构优点: 单一数据源,这样避免了组件...、组件状态同步问题 可以做到让组件无状态化 使用 Provider 注入,让 store actions 可以在组件中,通过 props 访问使用 下面是一些不同点: mobx 使用是 @inject...mobx 在大项目中扩展能力 redux 方案,本质上还是通过添加更多 switch 语句来实现扩展,将 store 分支节点 reducer 分散不同文件,再通过工具函数combineReducers...mobx 方案扩展非常简单,需要扩展 store 和 actions。并且,actions 和 store 扩展方式完全一致,通过给类添加成员: ? ?...结论 为了不加班,mobx 这边。 参考 Mobx 思想实现原理

    1.8K70

    2021前端react面试题汇总

    ,且没有任何其他影响数据 对比总结: redux将数据保存在单一store中,mobx将数据保存在分散多个store中 redux使用plain object保存数据,需要手动处理变化后操作;mobx...提交对应请求Store中对应mutation函数->store改变(vue检测到数据变化自动渲染) 通俗点理解就是,vuex 弱化 dispatch,通过commit进行 store状态一次更变...和变更前 state 状态进行比较,从而确定是否调用 this.setState()方法触发Connect及其组件重新渲染 5....React Hooks 主要解决了以下问题: (1)在组件之间复用状态逻辑很难 React 没有提供将可复用性行为“附加”组件途径(例如,把组件连接到 store)解决此类问题可以使用 render...当 ref 属性被用于一个自定义组件时,ref 对象将接收该组件已挂载实例作为他 current。 当在组件中需要访问组件 ref 时可使用传递 Refs 或回调 Refs。 9.

    2K20

    2021前端react面试题汇总

    ,且没有任何其他影响数据 对比总结: redux将数据保存在单一store中,mobx将数据保存在分散多个store中 redux使用plain object保存数据,需要手动处理变化后操作;mobx...适用observable保存数据,数据变化后自动处理响应操作 redux使用不可变状态,这意味着状态是只读,不能直接去修改它,而是应该返回一个新状态,同时使用纯函数;mobx状态是可变,可以直接对其进行修改...提交对应请求Store中对应mutation函数->store改变(vue检测到数据变化自动渲染) 通俗点理解就是,vuex 弱化 dispatch,通过commit进行 store状态一次更变...和变更前 state 状态进行比较,从而确定是否调用 this.setState()方法触发Connect及其组件重新渲染 5....当 ref 属性被用于一个自定义组件时,ref 对象将接收该组件已挂载实例作为他 current。 当在组件中需要访问组件 ref 时可使用传递 Refs 或回调 Refs。 9.

    2.3K00

    2022前端社招React面试题 附答案

    ,且没有任何其他影响数据 对比总结: redux将数据保存在单一store中,mobx将数据保存在分散多个store中 redux使用plain object保存数据,需要手动处理变化后操作;mobx...提交对应请求Store中对应mutation函数->store改变(vue检测到数据变化自动渲染) 通俗点理解就是,vuex 弱化 dispatch,通过commit进行 store状态一次更变...和变更前 state 状态进行比较,从而确定是否调用 this.setState()方法触发Connect及其组件重新渲染 5....React Hooks 主要解决了以下问题: (1)在组件之间复用状态逻辑很难 React 没有提供将可复用性行为“附加”组件途径(例如,把组件连接到 store)解决此类问题可以使用 render...当在组件中需要访问组件 ref 时可使用传递 Refs 或回调 Refs。 9. React组件构造函数有什么作用?它是必须吗?

    1.7K40

    React 原理问题

    Portal 提供了一种将节点渲染存在于组件以外 DOM 节点优秀方案。 ReactDOM.createPortal(child, container) 10....组件组件通信: 通过 props 传递 组件组件通信: 主动调用通过 props 传过来方法,并将想要传递信息,作为参数,传递组件作用域中 跨层级通信: 使用 react 自带Context...使用 Redux 或者 Mobx 等状态管理库 使用订阅发布模式 11. React 组件如何调用组件方法?...redux是将整个应用状态存储一个地方成为store, 里面保存着一个状态树store three, 组件可以派发(dispatch)行为(action)给store, 组件内部通过订阅store状态...对store管理不同 Redux将所有共享数据集中在一个大store中,统一管理 Mobx按模块将状态划出多个独立store进行管理 3.

    2.5K00

    滴滴前端高频react面试题汇总_2023-02-27

    (2)组件传递给组件方法作用域是组件实例化对象,无法改变。 (3)组件事件回调函数方法作用域是组件实例化对象(绑定组件提供方法就是组件实例化对象),无法改变。...两者对⽐: redux将数据保存在单⼀store中,mobx将数据保存在分散多个store中 redux使⽤plain object保存数据,需要⼿动处理变化后操作;mobx适⽤observable...只要组件重新渲染了,即使传入组件 props 未发生变化,那么子组件也会重新渲染,进而触发 render (2)重新渲染 render 会做些什么?...来减少因组件更新而触发组件 render,从而达到目的。...,通过this.props获取旧属性,通过nextProps获取新props,对比两次props是否相同,从而更新组件自己state。

    1.2K20

    【转】Mobx React  最佳实践

    stores 代表着UI状态 永远记住,你stores代表着你UI状态,这就意味着,当你将你stores储存下来后,就算你关了网页,再次打开,载入这个stores,你得到网页也应该是相同。...虽然stores并不是一个本地数据库角色,但是他依然存储着一些类似于按钮是否可见,input里面的内容之类UI状态。...最好就把业务逻辑放在stores方法里面,从组件里面调用。 避免使用全局store实例 请尽量避免使用全局store实例,因为这样你很难写出有条理而可靠组件测试。...时刻记得在组件声明 @observer 在每个组件声明时候使用@observer来更新组件状态。不然在嵌套组件里面,组件没有声明的话,每次状态更新涉及都是组件重新渲染。...所以尽量使用store来储存所有的UI状态,这样store属性就是你界面所得。 倾向于编写可控组件 多编写可控组件,这样会大大降低你测试复杂度,也让你组件易于管理。

    1.4K10

    React+Mobx写法更像Vue了

    之后我们实例化一个对象,叫做newState,之后在React组件中,只需要用@observer修饰一下组件类,便可以愉悦地使用这个newState对象中值和函数了。...然后把state和这个函数分别传到两个子组件里,在逻辑简单,且组件很少时候可能还好,但当业务复杂起来后,这么写就非常繁琐,且难以维护。而用Mobx就可以很好地解决这个问题。...之后只要在组件需要地方实例化一个MyState对象,需要用到数据组件,只需要将这个实例化对象通过props传下去就好了。 那如果组件树比较深怎么办呢?...我们可以借助React15版本新特性context来完成。它可以将组件值传递到任意层级深度组件中。...考虑ES5中原生数组对象中存在一定限制,所以Mobx将会创建一个类数组对象来代替原始数组。

    1.6K20

    React组件设计实践总结05 - 状态管理

    页面组件reducer和saga都会按需注入store selectors.js # ?...状态是否会被多个组件或者跨页面共享? Redux Store 是一个全局状态存储器,既然使用 Redux 了,有理由让 Redux 来管理跨越多组件状态 状态是否需要被镜像化?...如果你应用要做‘时间旅行(撤销/重做)’或者应用持久化,这个状态需要被恢复,那么应该放到 Redux Store,集中化管理数据是 Redux 强项 状态是否需要跨越组件生命周期?...将状态放在组件局部,就会跟着组件一起被销毁。如果希望状态跨越组件生命周期,应该放到组件或者 Redux Store 中....比如当一个数据变更涉及 Mobx 多个 Store,可以体现出 Redux 方式更加优雅,数据流更加清晰.

    2.1K31
    领券