在前端和后端使用常量整数

Mus*_*usa 5 javascript php ajax

假设我在后端 API 中定义了以下常量:

User::USER_ROLE_NORMAL; // Equal to 0
User::USER_ROLE_ADMIN; // Equal to 1
Run Code Online (Sandbox Code Playgroud)

在我的后端,我现在可以进行以下比较:

if($user->role == User::USER_ROLE_NORMAL)
Run Code Online (Sandbox Code Playgroud)

当我必须在前端应用逻辑时,最佳实践是什么?(其中这些常数未知)

在前端对数字进行硬编码感觉不太合适,如下所示:

if(ajaxData.role == 0)
Run Code Online (Sandbox Code Playgroud)

对于上下文:我需要在前端应用逻辑来更改布局

lea*_*iro 4

由于前端和后端逻辑不一定(也不应该耦合,因此我认为最好的方法是在前端代码中定义这些相同的常量。请记住,前端代码应始终与 API 规范保持一致。

您的操作方式取决于您(可以找到许多好的替代方法)。

如果您使用某种框架,一种(简单的)方法可能是使用一些全局变量或使用某种服务。

就像是:

const role {
  USER_ROLE_NORMAL: 0,
  USER_ROLE_ADMIN: 1,
};
Run Code Online (Sandbox Code Playgroud)

然后您可以按如下方式使用它们:

if(ajaxData.role == role.USER_ROLE_NORMAL) {}
Run Code Online (Sandbox Code Playgroud)

另一个选项(不太常用)是您可以在后端 API 中创建一个服务,该服务为前端提供这些值以供使用。因此,在前端代码可以使用与角色相关的任何值(例如)之前,必须向后端发出请求,以便获取这些常量值并将其保存在前端中,以便在将来的操作中使用它。