Javascript 特定用户的前端切换功能标志

Javascript 特定用户的前端切换功能标志,javascript,frontend,Javascript,Frontend,我想讨论一下您如何管理同一服务上不同用户组的多个功能,例如,我们想为用户组a发布一个优惠券折扣功能,并允许用户组B使用暗模式功能,等等,我们可以管理一个功能表来决定哪些功能应该为某个组打开,但是我们每次都必须添加新的功能键,前端必须执行类似的操作(或者这是必要的?) if(isUserA&&isFeatureA){ ... } if(isUserB&&isFeatureB){ ... } 此外,如果该功能与HTML相关,那么它就要复杂得多(尤其是该项目没有vue或react这样的框架) ..

我想讨论一下您如何管理同一服务上不同用户组的多个功能,例如,我们想为用户组a发布一个
优惠券折扣
功能,并允许用户组B使用
暗模式
功能,等等,我们可以管理一个功能表来决定哪些功能应该为某个组打开,但是我们每次都必须添加新的功能键,前端必须执行类似的操作(或者这是必要的?)

if(isUserA&&isFeatureA){
...
}
if(isUserB&&isFeatureB){
...
}
此外,如果该功能与HTML相关,那么它就要复杂得多(尤其是该项目没有vue或react这样的框架)


... 
... 
if(isApplyFeatureA){
FeatureB.parentNode.removeChild(FeatureB)
}
如果(isApplyFeatureB){
FeatureA.parentNode.removeChild(FeatureA)
}
...

一旦功能越来越多,就会出现大量的情况,通常如何分割功能标志?

要正确地进行分割,我建议使用功能标志工具。有很多,这是我真正建议的事情之一,不要从头开始重新发明轮子

几年前我打开了一个叫做

有了这样一个工具,方法将是

1-在功能标志服务上,创建要管理的功能(优惠券折扣)

2-在功能标志服务上,基于每个用户或基于其用户属性的段设置功能值,例如,花费金额>100

3-在你的应用程序(服务器或客户端)上,根据功能标志服务识别你的用户,以及你想确定他们是否应该获得featureA/B/N的任何属性,例如花费的金额
identify(“userA”,{userProperties})
。这将返回是否启用FeatureUra/FeatureB


然后你就处于一个非常好的位置,因为你可以修改他们是否立即获得优惠券,而无需构建任何代码。

我认为你使用localstorage或Cookie,但我不是100%确定,我希望这有助于@javascriptlover我认为在客户端存储上存储功能可能不是一个好主意?