О чем поговорим?
React Reconciler
React → DOM
Figma & Figma API
React → Figma
Итоги
Slide 5
Slide 5 text
О чем поговорим?
React Reconciler
React → DOM
Figma & Figma API
React → Figma
Итоги
Slide 6
Slide 6 text
import React from ‘react’;
import ReactDOM from ‘react-dom’;
Slide 7
Slide 7 text
Reconciler
hostConfig
Набор функций, специфичных
для среды отрисовки.
Например, как создать или
изменить узел.
Модуль react-reconciler с npm.
Является общим для всех
отрисовщиков
Slide 8
Slide 8 text
Reconciler
• UI agnostic
• Находит изменения дерева элементов
• Передает найденные изменения отрисовщику
Slide 9
Slide 9 text
Renderer
• UI dependent
• Оперирует хост-компонентами
• Атомарно применяет изменения в конкретной среде
Slide 10
Slide 10 text
О чем поговорим?
React Reconciler
React → DOM
Figma & Figma API
React → Figma
Итоги
Slide 11
Slide 11 text
import ReactDOM from ‘react-dom’;
. . .
ReactDOM.render(, root);
Проверяет есть ли изменения и находит их
prepareUpdate(
instance: Instance,
type: string,
oldProps: Props,
newProps: Props,
…,
): null | UpdatePayload;
Вносит изменения в текстовый лист
commitTextUpdate(
textInstance: TextInstance,
oldText: string,
newText: string
): void
Slide 82
Slide 82 text
Что осталось?
• Поддержка гидрации
• Работа в режиме persistence
• Поддержка тестовых селекторов
https://github.com/facebook/react/tree/master/packages/react-reconciler
Slide 83
Slide 83 text
О чем поговорим?
React Reconciler
React → DOM
Figma & Figma API
React → Figma
Итоги
Slide 84
Slide 84 text
No content
Slide 85
Slide 85 text
Figma Plugin API
Slide 86
Slide 86 text
No content
Slide 87
Slide 87 text
Figma API demo
https://www.figma.com/plugin-docs/intro/
Slide 88
Slide 88 text
Live code
• Отрисовываем React в Figma
• Компоненты
• , ,
• Атрибуты
• x, y, width, height, backgroundColor
Slide 89
Slide 89 text
А можно ли из Figma в React?
• github.com/bernaferrari/FigmaToCode
• overlay-tech.com
• Зар Захаров, Александр Каменяр — Figma to React: доставка
дизайна в код
Slide 90
Slide 90 text
А можно универсально?
https://holyjs-moscow.ru/2020/msk/talks/5udhzhsrgbzzg3r496hmge/
Slide 91
Slide 91 text
О чем поговорим?
React Reconciler
React → DOM
Figma & Figma API
React → Figma
Итоги
Slide 92
Slide 92 text
React Native
const WelcomeScreen = () => (
Step One
Edit App.js to change…
…
);