Почему Solid?¶
Solid - это легкий и компактный веб-фреймворк на Javascript, предназначенный для создания отзывчивых и производительных веб-приложений. Solid нацелен на то, чтобы сделать процесс разработки таким же качественным и предсказуемым, как и пользовательский опыт, и вот некоторые способы, с помощью которых нам удается этого достичь.
- Гранулярность: Solid не нуждается в виртуальном DOM и обновляет только то, что должно быть обновлено.
- Простота использования: Легко осваивается и хорошо знаком опытным пользователям
- Широкий спектр возможностей: В Solid есть все, что нужно для создания следующего потрясающего проекта.
Granularity¶
Solid был создан с учетом компактной реактивности, поэтому в нем не используется виртуальный DOM, а вместо него используется компилятор. С помощью функций настройки Solid может отслеживать и обновлять реактивные части ваших компонентов, что позволяет избавиться от виртуального DOM и других сложных техник рендеринга, которые могут быть с ним связаны. Таким образом, вам не придется беспокоиться о побочном эффекте повторного рендеринга или повторного запуска того, что не должно быть, только потому, что оно находится в одном и том же компоненте.
Для таких декларативных веб-фреймворков, как React, Vue.js и Elm, виртуальный DOM представляет собой компактное JavaScript-представление объектной модели документа.
Например, представьте, что у вас есть реактивное числовое значение, которое изменяется при каждом нажатии кнопки, либо уменьшаясь, либо увеличиваясь. Однако это значение глубоко вложено в теги и даже в текст внутри тега. Другие фреймворки полностью обновляют и перерисовывают компонент, который непосредственно содержит его, а Solid, напротив, обновляет и перерисовывает только реактивное значение. Да, и я имею в виду только значение, ничего вокруг него, даже текст внутри одного и того же тега остается нетронутым.
Простота использования¶
Solid создан таким образом, чтобы быть доступным и простым в использовании даже для разработчиков, не имеющих практически никакого опыта веб-разработки. Solid построен на основе синтаксиса JSX и функциональных компонентов, поэтому его работа очень похожа на работу с такими фреймворками, как React.js и Preact.
Эта простота использования относится не только к веб-фреймворку Solid, но и ко всему остальному, что предлагает Solid, например, к примитивам. Мы стремились к тому, чтобы все было легким, не требовало минимального опыта и было понятным. Например, примитив createSignal
можно использовать где угодно - внутри или вне компонентов, можно даже вынести его за пределы файла и импортировать 😅 - все зависит от того, как вам удобнее.
Всестороннее развитие¶
В Solid встроено все необходимое для начала работы над проектом: управление состояниями, выборка данных, кэширование, реактивность и многое другое. Как сказали бы в компании Astro, "opt-in to complexity", поскольку Solid был создан как универсальный веб-фреймворк для управления состояниями, реактивности и всего, что между ними.
На протяжении всей этой страницы мы говорили о примитивах, и в этом разделе мы обсудим, почему они так важны и почему мы их предлагаем.
Solid состоит из трех основных примитивов: Signal, Memo и Effect, которые обеспечивают управление состоянием, кэширование и отслеживание соответственно. Все они построены на основе паттерна наблюдателя.
Еще один замечательный примитив - примитив createResource
, который позволяет Solid использовать асинхронные данные без необходимости останавливать процесс выполнения или задерживать что-либо еще, если это не предусмотрено. Подробнее об этом и многом другом мы поговорим в разделе "Реактивность".