簡體   English   中英

如何在反應項目中為某些功能添加功能標志

[英]How to add a feature flag for certain features in react projects

我們有一個使用 azure devops 部署在 azure 中的反應項目。 最近,我們計划在我們現有的 React 項目中實施一個新概念。 因為,完成這個概念需要將近 3 個月的時間,我們希望實現一些標記機會,以便我們的代碼可以與生產代碼庫集成,但不會提供給客戶使用。我們還將進行一些 A/B 測試MVP 完成后,與我們的一位試點客戶一起。 因此,在這種情況下,在我們的項目中啟用某些功能標志的最佳方式是什么。 有沒有人對此有想法。 任何想法都將受到高度贊賞。

由於您想要實現的概念的規模,我建議使用支持 React 的 Feature Flag 工具,例如LaunchDarklyDevCycle 這兩種解決方案都允許您將代碼集成到生產環境中,同時在您准備好之前將它們隱藏起來,不讓客戶使用。

例如,實現功能標志的一種方法是使用DevCycle 的 React SDK ,它看起來像這樣:

import { useVariable } from '@devcycle/devcycle-react-sdk'

const App = () => {
    const variableKey = 'show-new-feature'
    const defaultValue = 'false'
    const featureVariable = useVariable(variableKey, defaultValue)

    return (
        <div>
           { featureVariable ? <div>Flag on!</div> : <div>Flag off</div>
        </div>
    )
}

上面代碼中的'show-new-feature'是在devcycle.com上創建的變量。 它在代碼中被引用,因此您可以從 DevCycle 上的功能管理儀表板遠程切換標志。

至於 A/B 測試,您也可以使用功能管理工具。 通過選擇誰接收啟用標志和誰接收禁用標志,您可以為不同的用戶集提供不同的功能變體。 DevCycle 在這里有關於它的文檔。

另一個使用FeatureGuard例子如下:

export const Demo: FC = () => {
  const [featureGuards, setFeatureGuards] = useState<IFeatureGuards>();
  const [on, setOn] = useState<boolean>(false);

  const init = async () => {
    const fg = await featureguards({
      apiKey: FEATUREGUARDS_API_KEY
    });
    setFeatureGuards(fg);
    setOn(await fg?.isOn('MY_FEATURE'));
  };

  useEffect(() => {
    init();
  }, []);
  if (!featureGuards) {
    return <CircularProgress />;
  }
  return (
    <Box>
        <FormControlLabel disabled control={<Switch />} label="On" checked={on} />
    </Box>
  );
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM