Проверяет умение проектировать data-driven архитектуру, где UI интерактивных заданий описывается декларативной JSON-конфигурацией и рендерится динамически.
Архитектура интерактивных заданий на JSON-конфигурациях строится вокруг идеи разделения описания (что показать) и рендеринга (как показать). JSON выступает контрактом между автором задания и фронтенд-движком: автор описывает структуру, типы, варианты и правила проверки, а движок интерпретирует это описание и строит UI.
const registry = {
singleChoice: SingleChoiceTask,
multiChoice: MultiChoiceTask,
textInput: TextInputTask,
matching: MatchingTask,
};
function TaskRenderer({ config, value, onChange }) {
const Component = registry[config.type];
if (!Component) return <UnknownTask type={config.type} />;
return (
<Component
{...config.props}
value={value}
onChange={onChange}
/>
);
}{
"id": "q1",
"type": "singleChoice",
"props": {
"question": "Столица Франции?",
"options": ["Париж", "Лион", "Марсель"]
},
"answer": { "correct": 0 }
}Такой подход даёт расширяемость: новый тип задания — это новый компонент плюс запись в реестре, без изменения ядра. Он удобен для образовательных платформ, конструкторов тестов и любых систем, где контент создаётся не разработчиками.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию