react根据传参的不同动态注册不同的子组件
2019-05-30 13:20
1081 查看
上一篇文章介绍了关于Vue如何根据传参的不同动态注册不同的子组件,实现过程请查阅Vue.extend动态注册子组件,由Vue的这个功能我就自然联想到了使用react该如何实现同样的功能呢。其实,用react实现同样的功能会更简单,不用那么多的API,不用去查找这些平时可能用的很少的API的用法,这也是为什么很多人喜欢react的原因,react只提供了一些核心的API,至于怎么实现特定的功能,你自己想办法去实现咯,这就是足够灵活啊!!!
需要导入不同的组件还是用到了import和它的then回调方法,代码如下:
import React, { Component } from 'react' class RegComponent extends Component { constructor(props){ super(props) this.state = { component: null, } regComponentHandle(componentName){ return import(`@/pages/${componentName}`).then(res => { let { default: component } = res; this.setState({ component, }); }) } render(){ let C = this.state.component; let data = { mgs: "动态组件传参" } const props = {...this.props, data}; return ( <div> <p><button type="button " onClick={this.regComponentHandle.bind(this, 'customHooks')}>动态注册组件</button></p> {C ? <C {...props } /> : null} </div> ) } } export default RegComponent
打完收工!
是不是很简单?
父组件向子组件传参,也很简单,如
{C ? <C {...props } /> : null}
相关文章推荐
- 根据手机屏幕分辨率设置组件或控件的大小,利用像素更好的适配不同尺寸的机型的动态布局
- react根据后台返回的组件路径动态的引入组件
- WPF 中动态创建、删除控件,注册控件名字,根据名字查找控件
- React(0.13) 定义一个动态的组件
- react-router Switch 组件不能动态更换子路由的问题
- .net比较完美的动态注册com组件
- React(0.13) 定义一个动态的组件(函数作为动态的值)
- 动态Ztree-根据角色拥有的不同菜单拼Json生成Ztree
- Java 如何动态改变改变组件大小(更随窗口) 和 根据窗口大小改变程序窗口大小f
- string转为document 根据需要不同转法 动态表单解析设计表单的内容
- 一种根据不同阶段注册不同中断服务函数的写法
- React第三方组件1(路由管理之Router的使用③传参)
- React router动态加载组件之适配器模式的应用详解
- React根据后台数据动态生成Form表单
- React第一个组件(不同方式)
- 插件占坑,四大组件动态注册前奏(二) 系统Service的启动流程
- react---react router4.0路由中如何异步动态加载组件,webpack使用require.ensure()生成异步chunk
- 根据数据源不同动态加载模板
- React组件间传参的方式