Skip to main content

Быстрый старт

tip

Проще всего начать с React в качестве рендерера

Устанавливаем зависимости

# chorda
npm i @chorda/core
# react
npm i @chorda/react react react-dom

Создаем дерево компонентов

Создаем и отрисовываем дерево компонентов

import { Html, attach, buildHtmlOptions, buildHtmlContext } from "@chorda/core"
import { createReactRenderer } from "@chorda/react"


// 1. создаем конфигурацию приложения
const createApp = () => {
return {
tag: 'span',
text: 'Hello!'
}
}

// 2. создаем дерево компонентов
const html = new Html(
buildHtmlOptions(createApp()),
buildHtmlContext(createReactRenderer())
)

// 3. подключаем компоненты к DOM дереву
attach(html, () => document.getElementById('root'))

И что мы сделали?

Создание конфигурации

Создаем декларативное описание компонента или дерева компонентов. Это описание и есть наша конфигурация

Создание дерева компонентов

Конфигурация может быть задана несколькими способами, их необходимо интерпретировать и собрать в итоговый набор опций, который понимает компонент Html. Это выполняется методом buildHtmlOptions.

Кроме опций требуется минимальный набор переменных (контекст), который инициализируется методом buildHtmlContext.

При создании корневого компонента в очередь патчей сразу же помещаются новые задания. Наши компоненты с этого момента готовы загружать данные и обрабатывать внешние события

Подключение к DOM

На этом шаге мы связываем корневой компонент с узлом DOM-дерева. Начинается обработка задач отрисовки, что приводит к обновлению виртуального, а следом за ним и реального DOM

А дальше?

Теперь мы можем создавать наше веб-приложение только за счет расширения конфигурации

const createApp = () => {
return {
tag: 'span',
text: 'Hello!',
templates: {
icon: {
css: 'icon',
tag: 'i'
}
}
}
}
info

Можно продолжить в CodeSandbox