Client SDK
Client SDK построен на базе JavaScript и предоставляет React-специфичный API.
Возможности
- Нативн ые React-хуки для работы с экспериментами и фича-флагами
- Автоматическое кеширование результатов
Установка
- NPM
- Yarn
npm install expf-sigma.js
yarn add expf-sigma.js
Создание хука для работы с SDK
Создайте хук, который инициализирует SDK и предоставляет доступ к результатам экспериментов и фича-флагам:
/src/hooks/useSigma.js
import Sigma from 'expf-sigma.js';
import { useEffect, useState } from 'react';
const token = <TOKEN>;
const FALLBACK_VALUES = {
browserName: '#',
buttonColor: 'red',
allExps: null
};
async function initSigma({ userId }) {
const sigma = new Sigma();
sigma.init({
token: TOKEN,
userData: {
userId
}
});
const browserName = await sigma.checkFlag('browser_name') ?? FALLBACK_VALUES.browserName;
const buttonColor = await sigma.getExperiment('exp_id').then(res => res.getParamValue('button_color')) ?? FALLBACK_VALUES.buttonColor;
const allExps = await sigma.getAllUserExperiments() ?? FALLBACK_VALUES.allExps;
return { browserName, buttonColor, allExps };
}
const sigmaData = initSigma({ userId: 1 });
export function useSigma() {
const [data, setData] = useState(FALLBACK_VALUES);
useEffect(() => {
sigmaData.then(setData);
}, []);
return data;
}