如何在React中根据不同的用户角色来构造组件文件夹

时间:2019-05-09 11:17:12

标签: reactjs

我的应用程序中的用户将具有两个不同的角色(教师和学生)。到目前为止,我已经为一个用户角色(教师)实现了所有操作,现在我将开始为另一角色构建组件。许多组件将重叠,但是它们将需要提供相对不同的功能。我想知道如何构造文件夹。

例如,我有一个名为Assignment的组件,它具有以下文件夹结构:

=> components
   => Assignment
      => AssignmentList.tsx
      => AssignmentCard.tsx

此组件将列出当前教师的课程中的所有作业。

我还需要构建Assignment组件,以便学生根据当前注册的课程列出她/他可以使用的作业。也许我可以使用AssignmentCard.tsx组件,因为它只显示给定的分配信息。

我想知道是否应该创建一个名为Assignment_Student的新文件夹,还是应该在Assignment文件夹中为每个角色创建两个子文件夹:StudentInstructor (and maybe folder called Common {{ 1}} AssignmentCard.tsx`。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

让我们展望未来。目前,我们正在努力为学生和教师进行结构设计。让我们包括大约5个假设角色,例如主持人,管理员,朋友(不是一个很好的例子,但您会明白)。

现在我们可以更好地回答我们的问题。从我的角度来看,我们有以下几种选择,各有其优缺点。

结构1

=> components
    => shared
    => Assignment
        => Student
        => Instructor
        => Another hypothetical role

我相信这会很好地隔离角色及其功能。但是我们面临着两个层次要处理。我们可以在第二个选项中进行改进。

结构2

=> components
    => shared
    => StudentAssignment
    => InstructorAssignment
    => AnotherHypotheticalAssignment

这可能比第一种更干净,我们现在只有一个级别的组件可供选择。更好的是,如果需要将Assignment专用的任何共享组件用在另一个地方,例如ExtraCurricular,我们就不必费劲了,我们可以简单地从共享,这实际上是一个共享组件。


TLDR 我的建议是使用第二种结构