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

将mobx store中的字符串用作react组件名称?

将mobx store中的字符串用作react组件名称可以通过动态渲染实现。

首先,将mobx store中的字符串定义为一个observable属性,以便监视其变化。在mobx store中添加以下代码:

代码语言:txt
复制
import { observable } from 'mobx';

class Store {
  @observable componentName = 'ComponentA';
}

const store = new Store();
export default store;

然后,在React组件中使用mobx-react库来观察mobx store的变化,并将字符串作为组件名称进行渲染。在React组件中添加以下代码:

代码语言:txt
复制
import React from 'react';
import { observer } from 'mobx-react';
import store from './store';

const ComponentA = () => {
  return <div>Component A</div>;
};

const ComponentB = () => {
  return <div>Component B</div>;
};

const MainComponent = observer(() => {
  const { componentName } = store;

  const renderComponent = (componentName) => {
    switch (componentName) {
      case 'ComponentA':
        return <ComponentA />;
      case 'ComponentB':
        return <ComponentB />;
      default:
        return null;
    }
  };

  return <div>{renderComponent(componentName)}</div>;
});

export default MainComponent;

在上述代码中,我们定义了两个React组件:ComponentA和ComponentB。根据mobx store中的componentName属性的值,使用switch语句动态决定要渲染哪个组件。

这样,当mobx store中的componentName属性发生变化时,React组件将根据新的值重新渲染相应的组件。

这种方法适用于需要根据运行时条件来动态决定渲染哪个React组件的场景。

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

  • 腾讯云:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:https://cloud.tencent.com/solution/ai
  • 云函数(SCF):https://cloud.tencent.com/product/scf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 2022社招react面试题 附答案

    createElement需要传递三个参数 参数一:type 当前ReactElement类型; 如果是标签元素,那么就使用字符串表示 “div”; 如果是组件元素,那么就直接使用组件名称; 参数二...、Portals、字符串和数字、 Boolean和null等内容; componentDidMount:组件装载之后调⽤,此时我们可以获取到DOM节点并操作,⽐如对canvas,svg操作,服务器请求...6、受控组件和非受控组件区别是啥? 受控组件React控制组件,并且是表单数据真实唯一来源。 非受控组件是由DOM处理表单数据地方,而不是在 React 组件。...两者对⽐: redux数据保存在单⼀storemobx数据保存在分散多个store redux使⽤plain object保存数据,需要⼿动处理变化后操作;mobx适⽤observable...当然mobx和redux也并不⼀定是⾮此即彼关系,你也可以在项⽬⽤redux作为全局状态管理,⽤mobx作为组件局部状态管理器来⽤。 10、redux异步中间件之间优劣?

    2.1K10

    Vite + React + Typescript 构建实战

    mobx 时候,版本已经是 mobx@6.x,发现这里相比于旧版本,API 使用上有了一些差异,特地在这里分享下踩坑经历 Store 划分 store 划分,主要参考本文示例 需要注意是,在...注入 mobx@6x数据注入,采用 react context 特性;主要分成以下三个步骤 根节点变更 通过 Provider 组件,注入全局 store // 入口文件 app.tsximport...或者指定 store 名称数据 * @param storeName 指定子 store 名称 * @returns typeof StoreType[storeName] */function useStores...stores[storeName] : stores}export { useStores } 组件引用通过自定义组件引用 store import React from 'react'import {...code demo↑ 以上就是整个 mobx+typescript 在函数式组件实际应用场景了;如果有什么问题,欢迎评论交流 :) 参考资料 React Hook useContext (https

    1.6K30

    关于如何在 Mobx 组织 Stores

    Stores(存储) Store 可以在任何 Flux 系架构中找到,可以与 MVC 模式控制器进行比较。...Store 主要职责是逻辑和状态从组件移至一个独立,可测试单元,这个单元在 JavaScript 前端和后端中都可以使用。...,Store 不会非常庞大 各个 Store 相对独立 不同页面需要共享数据存入 RootStore 在进入页面,会对 Store 初始化 缺点: 组件侵入性,需要改变 React 组件原本结构,例如所有需要响应数据变动组件都需要使用...,Store 不会非常庞大 各个 Store 相对独立 那个页面需要那个 Store,引入即可 不刷新游览器,页面状态一直保持着 缺点: 组件侵入性,需要改变 React 组件原本结构,例如所有需要响应数据变动组件都需要使用...observer 装饰,组件本地状态也需要 observable 装饰,以及数据操作方式等等,对 Mobx 耦合较深, 日后切换框架或重构成本很高 无数据快照,如果要重置 Store,那么得写reset

    89000

    MobX】391- MobX 入门教程(下)

    三、MobX 常用 API 介绍 3. 修改可观察数据 在上一部分内容,我们了解到,对可观察数据做出反应时候,需要我们手动修改可观察数据值。...2019102301.png 在这个案例,我们引用 mobx-react 库来实现,很明显可以看出 mobx-react 是作为 mobxreact 之前桥梁。...它将 react 组件转化为对可观察数据反应,也就是组件 render 方法包装成 autorun 方法,使得状态变化时能自动重新渲染。...首先安装 mobx-react 依赖: cnpm i mobx-react -D 修改webpack.config.js,在 presets 配置添加 react 进来: // ......事实上,我们只需要记住 observer 方法,所有 React 组件用 observer 修饰,就是 react-mobx 用法。 4.

    88820

    MobXMobX 简单入门教程

    官网介绍: React 通过提供机制把应用状态转换为可渲染组件树并对其进行渲染。而MobX提供机制来存储和更新应用状态供 React 使用。...,实现点击按钮,数值累加简单操作,如图: [2019102301.png] 在这个案例,我们引用 mobx-react 库来实现,很明显可以看出 mobx-react 是作为 mobxreact...它将 react 组件转化为对可观察数据反应,也就是组件 render 方法包装成 autorun 方法,使得状态变化时能自动重新渲染。...首先安装 mobx-react 依赖: cnpm i mobx-react -D 修改webpack.config.js,在 presets 配置添加 react 进来: // ......事实上,我们只需要记住 observer 方法,所有 React 组件用 observer 修饰,就是 react-mobx 用法。 4.

    1.5K00

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

    数据管理能力应用到 react React Component 对数据源字段进行精确响应更新。...但是,这里分别用redux方案 和 mobx方案 实现上面的功能。 为了演示方便,所有的代码都放在一个文件。查看 mobx 实现代码前,先了解下装饰器(decorator)是什么。...、父组件状态同步问题 可以做到让组件无状态化 使用 Provider 注入,让 store actions 可以在子组件,通过 props 访问使用 下面是一些不同点: mobx 使用是 @inject...component 关系, redux 使用 connect 参数手动控制传递哪些字段 mobx 直接修改 store 状态,但是必须在 @action 修饰函数完成,@action 语义,表示这是一个修改状态操作...mobx 在大项目中扩展能力 redux 方案,本质上还是通过添加更多 switch 语句来实现扩展, store 分支节点 reducer 分散到不同文件,再通过工具函数combineReducers

    2.1K11

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

    数据管理能力应用到 react React Component 对数据源字段进行精确响应更新。...但是,这里分别用redux方案 和 mobx方案 实现上面的功能。 为了演示方便,所有的代码都放在一个文件。查看 mobx 实现代码前,先了解下装饰器(decorator)是什么。...、父组件状态同步问题 可以做到让组件无状态化 使用 Provider 注入,让 store actions 可以在子组件,通过 props 访问使用 下面是一些不同点: mobx 使用是 @inject...component 关系, redux 使用 connect 参数手动控制传递哪些字段 mobx 直接修改 store 状态,但是必须在 @action 修饰函数完成,@action 语义,表示这是一个修改状态操作...mobx 在大项目中扩展能力 redux 方案,本质上还是通过添加更多 switch 语句来实现扩展, store 分支节点 reducer 分散到不同文件,再通过工具函数combineReducers

    1.8K70

    字节前端面试被问到react问题

    当 ref 属性被用于一个自定义组件时,ref 对象接收该组件已挂载实例作为他 current。当在父组件需要访问子组件 ref 时可使用传递 Refs 或回调 Refs。...区别:对于事件名称命名方式,原生事件为全小写,react 事件采用小驼峰;对于事件函数处理语法,原生事件为字符串react 事件为函数;react 事件不能采用 return false 方式来阻止浏览器默认行为...);支持storeReact组件连接,如react-redux,mobx- react;(2)区别 Redux更多是遵循Flux模式一种实现,是一个 JavaScript库,它关注点主要是以下几方面...也不例外,而为了不将业务或数据相关任务混入React组件,就需要使用其他框架配合管理异步任务流程,如redux-thunk,redux-saga等;Mobx是一个透明函数响应式编程状态管理库,它使得状态管理简单可伸缩...:redux数据保存在单一storemobx数据保存在分散多个storeredux使用plain object保存数据,需要手动处理变化后操作;mobx适用observable保存数据,

    2.1K20

    React+Mobx写法更像Vue了

    observable可以用来观测一个数据,这个数据可以数字、字符串、数组、对象等类型(相关知识点具体会在后文中详述),而当观测到数据发生变化时候,如果变化值处在autorun,那么autorun...action,runInAction和严格模式(useStrict) mobx推荐修改被观测变量行为放在action。...之后我们实例化一个对象,叫做newState,之后在我React组件,我只需要用@observer修饰一下组件类,便可以愉悦地使用这个newState对象值和函数了。...我们可以借助React15版本新特性context来完成。它可以组件值传递到任意层级深度组件。...React组件可以直接添加@observable修饰变量 @observer class MyComponent extends React.Component { state = { a

    1.6K20

    Mobx与Redux异同

    如今前端通常是要用组件components来构建一个应用,而组件通常有自己内部状态即state,但是随着应用越来越膨胀,组件自己内部维护状态在膨胀应用很快会变得混乱。...像Redux和Mobx这类状态管理库一般都有附带工具,例如在React中使用react-redux和mobx-react,他们使你组件能够获得状态,一般情况下,这些组件被叫做容器组件container...Mobx组件可以做到精准更新,状态包装成可观察对象,一旦状态对象变更,就能自动获得更新。...store管理方式 在Redux应用通常将整个应用state被储存在一棵object tree,并且这个object tree只存在于唯一一个store。...在Mobx则通常按模块应用状态划分,在多个独立store管理。 储存数据形式 Redux默认以JavaScript原生对象形式存储数据,这也就使得Redux需要手动追踪所有状态对象变更。

    92320

    问:你是如何进行react状态管理方案选择

    ps:这里谈到状态管理是指全局状态管理,局部使用useState即可 状态管理方式目前比较常用状态管理方式有hooks、redux、mobx三种,下面我详细介绍一下这三类使用方法以及分析各自优缺点...inject('store1')(observer(Name))优缺点分析:优点:组件会自动订阅store具体某个属性,无需手动订阅噢!...一个store即写state,也写action,这种方式便于理解组件会自动订阅store具体某个属性,只要当属性变化时,组件才会rerender,渲染效率较高成功避免了上一种使用方式缺点,不用对使用...组件更新用组件更新来简单阐述总结一下:mobx执行原理。observer这个装饰器(也可以是Hoc),对React组件render方法进行track。...render方法,加入到各个observable依赖。当observable发生变化,track方法就会执行。

    3.5K00

    问:你是如何进行react状态管理方案选择?_2023-03-13

    ps:这里谈到状态管理是指全局状态管理,局部使用useState即可 状态管理方式目前比较常用状态管理方式有hooks、redux、mobx三种,下面我详细介绍一下这三类使用方法以及分析各自优缺点...inject('store1')(observer(Name))优缺点分析:优点:组件会自动订阅store具体某个属性,无需手动订阅噢!...一个store即写state,也写action,这种方式便于理解组件会自动订阅store具体某个属性,只要当属性变化时,组件才会rerender,渲染效率较高成功避免了上一种使用方式缺点,不用对使用...组件更新用组件更新来简单阐述总结一下:mobx执行原理。observer这个装饰器(也可以是Hoc),对React组件render方法进行track。...render方法,加入到各个observable依赖。当observable发生变化,track方法就会执行。

    2.3K30

    如何进行react状态管理方案选择

    ps:这里谈到状态管理是指全局状态管理,局部使用useState即可 状态管理方式目前比较常用状态管理方式有hooks、redux、mobx三种,下面我详细介绍一下这三类使用方法以及分析各自优缺点...inject('store1')(observer(Name))优缺点分析:优点:组件会自动订阅store具体某个属性,无需手动订阅噢!...一个store即写state,也写action,这种方式便于理解组件会自动订阅store具体某个属性,只要当属性变化时,组件才会rerender,渲染效率较高成功避免了上一种使用方式缺点,不用对使用...组件更新用组件更新来简单阐述总结一下:mobx执行原理。observer这个装饰器(也可以是Hoc),对React组件render方法进行track。...render方法,加入到各个observable依赖。当observable发生变化,track方法就会执行。

    3.4K30

    前端一面必会react面试题(附答案)

    ps:这里谈到状态管理是指全局状态管理,局部使用useState即可 状态管理方式目前比较常用状态管理方式有hooks、redux、mobx三种,下面我详细介绍一下这三类使用方法以及分析各自优缺点...inject('store1')(observer(Name))优缺点分析:优点:组件会自动订阅store具体某个属性,无需手动订阅噢!...一个store即写state,也写action,这种方式便于理解组件会自动订阅store具体某个属性,只要当属性变化时,组件才会rerender,渲染效率较高成功避免了上一种使用方式缺点,不用对使用...组件更新用组件更新来简单阐述总结一下:mobx执行原理。observer这个装饰器(也可以是Hoc),对React组件render方法进行track。...render方法,加入到各个observable依赖。当observable发生变化,track方法就会执行。

    2.6K20

    MobXReact Native开发应用

    MobX 是一款精准状态管理工具库,如果你在 ReactReact Native 应用中使用过 Flux、Alt、Redux 和 Reflux,那毫不犹豫地说,MobX 简单性将成为你状态管理不二之选.../native 导入 observer; 使用 @observer 装饰器描述类,确保相关数组变化后组件独立地重渲染; 导入已经创建好组件 NewItem。...这是我们要增加新条目时转向组件; 在 addListItem,把 this.state.text 传入this.props.store.addListItem。...在与输入框绑定 updateText 中会更新this.state.text; 在 removeListItem 调用 this.props.store.removeListItem 并传入条目;...= this.props.store 8.在 render 方法,也创建了界面,并绑定了类方法 import React, { Component } from 'react' import

    12.4K80

    Hooks 邂逅 MobX ,代码变得更丝滑了!

    还有些朋友想要使用 React Hooks 来重构升级部分业务,或者封装优化一些通用业务组件,来提升项目的可扩展性,但是却困于不知如何 在 Hooks 中继续使用Mobx 这一状态管理库了,使用过程感觉畏手畏脚奇奇怪怪...其实 Hooks 这些问题都是因为没有一个公共空间来共享数据导致,在 Class 组件,我们有 this , 在 Vue3 ,我们有 setup作用域 。...Mobx 为 Hooks 准备倚天屠龙 API Hooks 存在问题,我们刚刚介绍过了,Mobx 在 v6 版本推出API 又是如何在保留 Hooks 强大特性前提下,帮她搞定这些问题呢?...中使用 mobx 时候 我们使用 observer HOC 方式 ,它主要能力是给类组件提供 pure component 能力,可以组件 props 和 state 转换为 observable...import React from 'react'; import { Observer, useLocalStore } from 'mobx-react'; import {store } from

    1.3K10
    领券