Записаться на курс
NoCode Hero Hub

Bubble Option Sets: Полное руководство

Bubble Option Sets: Полное руководство


Перевод статьи https://www.amliesolutions.com/bubble/basic-features/option-sets

Bubble представил Option sets в декабре 2019 года, и они добавили невероятно мощную функцию, которой не хватало в Bubble. В большинстве своем option sets можно использовать для хранения значений раскрывающегося списка (например, списка стран или категорий сортировки), но они достаточно гибкие и могут использоваться различными креативными способами.
Причина, по которой Option Sets работают молниеносно, заключается в том, что они сохраняются как часть общей базы кода вашего приложения (вместе с рабочими процессами, условиями и всем остальным, что Bubble необходимо для того, чтобы ваше приложение работало). Это означает, что:
  • Они никогда не касаются базы данных
  • Они могут быть кэшированы вашим браузером, чтобы к ним можно было быстро получить доступ при следующем посещении страницы.
  • Они обслуживаются через Cloudflare CDN.
  • Они хранятся в облегченном формате JSON, который улучшает производительность.

Что такое Option Set?


Как следует из названия, это просто означает набор параметров, которые вы можете добавить в свое приложение. Мы будем использовать определенную терминологию, когда говорим о Option Sets, поэтому давайте сначала разберем их:




Как работают Option Sets?


Во многом Option Sets похожи на базу данных Bubble. Вы можете создавать новые типы, связывать их друг с другом и ссылаться на них повсюду в своем приложении. Но есть несколько основных отличий:

Option sets статичны
В отличие от базы данных, любые значения, которые вы храните в Option sets, неизменны и могут быть отредактированы только в редакторе Bubble. Изменения не будут видны в вашем приложении, пока вы не развернете его новую версию.

Option sets быстрые 

Каждый раз, когда вы ссылаетесь на что-то в своей базе данных, Bubble необходимо получить эту информацию с сервера Bubble. С другой стороны, Option Sets загружаются как объект JSON вместе со всем остальным на вашей странице при первой загрузке и после этого не требуют никаких поисков. Любое перечисление, сортировка или фильтрация хранилищ данных в Option Sets после этого выполняется на стороне клиента, что означает молниеносную скорость.
После загрузки первой страницы Bubble не нужно выполнять какие-либо дополнительные поиски в базе данных, чтобы получить данные Option Set.

Элементы базы данных могут содержать  Option sets, но не наоборот
Option Sets предназначены для работы независимо от базы данных. Вы можете ссылаться на них из любого места в приложении, но вы не можете ссылаться на запись в базе данных из Option. Тем не менее, опции могут ссылаться друг на друга, как мы увидим в примере ниже.

Как создать Option Set в Bubble


Option sets находятся на вкладке «Данные» вместе с редактором базы данных данных. По умолчанию их нет, поэтому вы найдете полностью пустой экран. В нашем примере мы собираемся настроить два разных Option sets: Страны и Континенты и связать их друг с другом. Вы увидите, что процесс очень похож на работу с базой данных.

Страны и континенты

Давайте сначала настроим наш тип Страны. В редакторе Option sets введите Country, как показано ниже, а затем таким же образом настройте Континент:
После настройки Страны и Континента нажмите на Option set Страны, чтобы отредактировать его. Мы собираемся добавить к нему один атрибут, чтобы привязать его к Континенту:
Затем давайте настроим наш первый Континент с полем ввода New Option:
Сделайте то же самое и создайте Страну, например Норвегию, а затем щелкните ссылку Modify attributes link и выберите вновь созданный Континент в качестве континента Страны:
Отлично! Теперь у нас есть Страна, принадлежащая континенту. Не стесняйтесь добавлять в список еще несколько стран и континентов, и давайте посмотрим, как мы можем отобразить этот список на front-end. Не забудьте сохранить Континент в каждой стране.

Использование Option Sets в раскрывающихся списках и других элементах


Имея несколько Стран с Континентами, давайте теперь задействуем их на front-end. Сначала создайте раскрывающийся список, в котором просто перечислены все Континенты, которые мы сохранили. Помните, что это будет работать только в тесте версии в вашем приложении, пока вы его не развернете.

Отображение Option Sets в раскрывающемся списке
Тип выбора: установите только что созданный Option set для Континента
Источник выбора: установите Все Континенты
Заголовок параметра: Отображение текущего параметра пользователя.


Фильтрация Option Sets

Затем мы будем использовать поле Континент, сохраненное для каждой страны, чтобы отфильтровать Страны. Начните с добавления еще одного раскрывающегося списка рядом с первым и настройте его точно так же, как и первый, за исключением того, что вместо Континента отображается Страна.
Теперь мы внесем одно важное изменение, чтобы отображать правильный список Стран после выбора Континента. Мы делаем это, добавляя оператор: filter в конец списка стран. Мы говорим Bubble, чтобы он взял полный список стран, а затем применить к ним фильтр:

Затем мы установим ограничение, сообщающее Bubble, что он должен показывать только Страны, Континент которых совпадает с тем, который пользователь выбрал в раскрывающемся списке Континент.

Фильтрация Option Sets происходит на стороне клиента, поэтому она выполняется молниеносно и не расходует производительность серверов.

Option Sets и безопасность


Имейте в виду, что Option Sets загружаются в виде обычного текста JSON на каждую страницу вашего приложения. Они не предназначены для хранения какой-либо конфиденциальной информации, и созданный Option Set в вашем приложении делает любую информацию, которую он хранит, доступной для всех.

Часто задаваемые вопросы про Option Sets


Что такое Option Sets в  Bubble?

Option Sets - это своего рода «легкая» база данных в Bubble, которую вы можете использовать для хранения статической информации. Они отлично подходят для хранения значений, которые вам нужны в вашем приложении, таких как параметры, которые вы хотите отображать в раскрывающемся списке, или настройки вашего приложения.

Обычно наборы параметров используются для хранения значений, которые редко меняются, например настроек приложения или списка стран, языков, категорий и т.д.


Как мне добавлять и обновлять Option Sets?

Option Sets добавляются в редакторе Bubble, и вам необходимо развернуть приложение, прежде чем они будут видны в интерфейсе. Вы найдете их на вкладке «Данные» в разделе «Option Sets».


Как загружаются Option Sets?

Option Sets загружаются на вашу страницу при загрузке страницы вместе с другими частями вашего приложения, которые необходимы Bubble (элементы, рабочие процессы, условия и т.д.). Технически он загружается в виде файла JSON, что означает, что он быстро обрабатывается на странице.

Option Sets являются частью общего файла Javascript вашего приложения, что означает, что он и кэшируется, и обслуживается по сети Cloudflare, что делает их намного быстрее, чем чтение из базы данных.


Как фильтруются Option Sets?

Вы можете отфильтровать Option Sets, добавив оператор: filter в выражение Bubble. Поскольку вы технически никогда не «ищите» набор параметров, вы не можете добавлять ограничения, как при поиске по базе данных - Bubble всегда загружает полный список.

Фильтрация Option Sets происходит 100% на стороне клиента, а не на сервере.


Bubble загружает только необходимые ему Option Sets?

Bubble загрузит все Option Sets на каждой странице, независимо от того, используется ли эти Option Sets на этой странице. Но поскольку они являются частью общей базы кода вашего приложения, они могут быть кэшированы вашими браузерами, то есть они будут загружаться только в первый раз (или всякий раз, когда они будут разворачивать новую версию вашего приложения).


Могут ли пользователи редактировать Option Sets из моего приложения?

Нет. Option Sets являются частью базы кода вашего приложения и требуют повторного разворачивания приложения для обновления. Их можно редактировать только в редакторе Bubble.


Будут ли Option Sets замедлять мою страницу?

Сами по себе Option Sets хранятся в виде обычного текста в формате JSON. Это означает, что они очень легкие сами по себе. Технически, все данные, которые вы добавляете на свою страницу, конечно, будут замедлять ее, но вам придется очень постараться, прежде чем они начнут замедлять загрузку вашей страницы.


Что с безопасностью  Option Sets?

Самый ясный ответ заключается в том, что все Option Sets хранятся в виде обычного текста в браузерах вашего пользователя и легко доступны. Он не предназначен для хранения конфиденциальной информации, поэтому всегда избегайте этого. Предположим, что вся информация, которую вы храните в Option Sets, является общедоступной и доступна всем, кто посещает любую из ваших страниц.


Защищены ли Option Sets Privacy Rules?

Нет, Privacy Rules никоим образом не влияют на Option Sets. Они влияют только на вашу базу данных.Вы можете ссылаться на Option Sets в своих Privacy Rules (например, сохранять роль пользователя в виде Option Sets) из поля типа данных, что делает их полезными для настройки различных правил в вашем приложении.


Зашифрованы ли Option Sets?

Нет, Option Sets хранятся в текстовом формате и не зашифрованы. Не храните в них какую-либо важную или конфиденциальную информацию.



Работа с данными База данных