使用 React 创建动态 UI

Posted

技术标签:

【中文标题】使用 React 创建动态 UI【英文标题】:Creating Dynamic UI using React 【发布时间】:2016-04-02 10:50:02 【问题描述】:

我有以下用例:

    我有一组反应组件 用户将这些组件从某个图库添加到页面 用户配置这些组件并收藏视图 用户可以配置这些组件并收藏更多视图

    用户从他的设置中点击最喜欢的项目,它会加载具有相应配置的页面。

    我想知道如何使用 react 来实现这一点。如何使用反应组件动态构建页面?

【问题讨论】:

【参考方案1】:

记住:

React 是一个用于构建用户界面的 javascript 库。它使用一个 声明式范式,使您更容易推理您的 应用程序,旨在既高效又灵活。

只是界面

很多人使用 React 作为 MVC 中的 V。因为 React 没有 关于您的技术堆栈的其余部分的假设,很容易尝试 它是现有项目中的一个小功能。

鉴于此,react 组件只显示您传递的data。您可以根据data 动态构建页面。这通常使用props 传递。

例如

<CustomInput type="text" /> 并且在其中可以返回一个组件/html >基于其type

<List items=this.props.items />item 可以是 object >name: 'item name', type: 'item type' 并且您将其映射到 ><CustomInput type=item.type name=item.name/>

因此,这完全取决于您如何处理数据以及如何在前端显示数据的计划。

针对您当前的情况

您可以拥有一个 Gallery 组件,该组件具有您的 Component 集合,该集合设置 Page 内的组件的 props

// components prop of Page is an array of React Components
const arrayOfComponents = [type: 'One', name: 'Component-One', type: 'Two', name: 'Component-Two', type: 'Three', name: 'Component-Three'];
<Container>
    <Gallery>
        <AddReactComponent type="One" />
        <AddReactComponent type="Two" />
        <AddReactComponent type="Three" />
    </Gallery>
    <Page components=arrayOfComponents />
</Container>

【讨论】:

以上是关于使用 React 创建动态 UI的主要内容,如果未能解决你的问题,请参考以下文章

如何使用它的snake_case名称动态加载图标(React,material-ui)

在 React Material UI Table 中创建动态操作列

根据外部 Internet 连接动态更改状态 - React(离线/在线)

创建 React 动态表单

React 使用 Typescript 动态创建 refs

如何创建动态的 React Native 组件