1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-WatermelonDB

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

WatermelonDB

Реактивный фреймворк для работы с базами данных

Создайте мощные приложения на React и React Native, которые масштабируются от сотен до десятков тысяч записей и остаются быстрыми ⚡️

MIT License npm Gurubase

| | WatermelonDB | | - | ------------ | | ⚡️ | **Запустите ваше приложение мгновенно**, независимо от объема данных | | 📈 | **Высоко масштабируемый** от сотен до десятков тысяч записей | | 😎 | **Ленивая загрузка**. Загружайте данные только тогда, когда это необходимо | | 🔄 | **Оффлайн-первичный подход**. [Синхронизация](https://watermelondb.dev/docs/Sync/Intro) с собственным сервером | | 📱 | **Многоплатформенный**. iOS, Android, Windows, веб, и Node.js | | ⚛️ | **Оптимизирован для React**. Легко подключайте данные к компонентам | | ⧰ | **Независим от фреймворка**. Используйте JS API для подключения к другим UI фреймворкам | | ⏱ | **Быстрый**. И становится всё быстрее с каждым выпуском! | | ✅ | **Проверенный**. Обеспечивает работу [Nozbe](https://nozbe.com/teams) с 2017 года (и [многих других](#кто_использует_watermelondb)) | | ✨ | **Реактивный**. (Необязательно) [API RxJS](https://github.com/ReactiveX/rxjs) | | 🔗 | **Относи́тельность**. Построен на надёжной основе [SQLite](https://www.sqlite.org) | | ⚠️ | **Статическая типизация** с [Flow](https://flow.org) или [TypeScript](https://typescriptlang.org) |## Почему Watermelon?

WatermelonDB — это новый способ работы с данными пользователей в приложениях на React Native и веб-приложениях на React.

Он оптимизирован для создания сложных приложений на React Native, а основная цель — реальная производительность. Проще говоря, ваше приложение должно запускаться быстро.

Для простых приложений использование Redux или MobX с адаптером для хранения данных является самым простым решением. Но когда вы начинаете масштабировать до тысяч или десятков тысяч записей в базе данных, ваше приложение будет медленно запускаться (особенно на более медленных устройствах Android). Загрузка полной базы данных в JavaScript дорогостоящая операция! Арбуз решает эту проблему путем ленивости. Ничего не загружается до тех пор, пока это не будет запрошено. И поскольку все запросы выполняются непосредственно в надежной базе данных SQLite на отдельном нативном потоке, большинство запросов разрешаются мгновенно.

Но в отличие от использования SQLite напрямую, Арбуз является полностью наблюдаемым. Поэтому каждый раз, когда вы изменяете запись, все пользовательский интерфейс, зависящий от него, автоматически перерисовывается. Например, завершение задачи в приложении "Сделай это" приведет к перерисовке компонента задачи, списка (для переупорядочивания) и всех связанных счетчиков задач. Узнать больше.| React Native EU: Следующее поколение React баз данных | | ---- | |

📺 Следующее поколение React баз данных
(лектура о WatermelonDB)

|

Использование

Быстрый (надуманный) пример: приложение с постами и комментариями.

Сначала вы определяете модели:

class Post extends Model {
  @field('name') name
  @field('body') body
  @children('comments') comments
}

class Comment extends Model {
  @field('body') body
  @field('author') author
}

Затем вы подключаете компоненты к данным:

const Comment = ({ comment }) => (
  <View style={styles.commentBox}>
    <Text>{comment.body}  by {comment.author}</Text>
  </View>
)

// Вот как вы делаете свое приложение реактивным! ✨
const enhance = withObservables(['comment'], ({ comment }) => ({
  comment,
}))
const EnhancedComment = enhance(Comment)

И теперь вы можете рендерить весь пост:

const Post = ({ post, comments }) => (
  <View>
    <Text>{post.name}</Text>
    <Text>Комментарии:</Text>
    {comments.map(comment =>
      <EnhancedComment key={comment.id} comment={comment} />
    )}
  </View>
)

const enhance = withObservables(['post'], ({ post }) => ({
  post,
  comments: post.comments
}))

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

➡️ Узнать больше: полная документация## Кто использует WatermelonDB

Nozbe Teams
CAPMO
Mattermost
Rocket Chat
Steady
Aerobotics
Smash Appz
HaloGo
SportsRecruits
Chatable
Todorant
Blast Workout
Dayful
Learn The Words

Используете ли вы 🍉 в вашей компании или приложении? Откройте pull request и добавьте свой логотип/иконку с ссылкой здесь!

Вклад

Мы нуждаемся в вас

WatermelonDB — это проект с открытым исходным кодом, и он нуждается в вашей помощи, чтобы развиваться!

Если вам не хватает какой-либо функции, вы нашли ошибку или хотите улучшений, мы настоятельно рекомендуем вам внести свой вклад! Вы можете открыть issue, чтобы получить некоторое руководство, и посмотреть руководство по вкладу для получения подробной информации о настройке проекта, тестировании и т.д.

Если вы только начинаете, посмотрите простые задачи для новичков, которые легко выполнить. Если вы сделали значительный вклад, напишите мне, и я отправлю вам приятный 🍉 стикер!

Если вы создали или планируете создать приложение с использованием WatermelonDB, пожалуйста, сообщите нам об этом!

Автор и лицензия

WatermelonDB был создан @Nozbe.

WatermelonDB's основным автором и поддерживателем является Radek Pietruszewski (сайт𝕏 (Twitter)).Просмотреть всех участников.

WatermelonDB распространяется под лицензией MIT. Подробную информацию см. файл LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

WatermelonDB, следующее поколение базы данных для React, предназначено для создания мощных приложений на React и React Native. Она может масштабироваться от сотни до десятков тысяч записей, сохраняя при этом высокую скорость работы. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-WatermelonDB.git
git@api.gitlife.ru:oschina-mirror/mirrors-WatermelonDB.git
oschina-mirror
mirrors-WatermelonDB
mirrors-WatermelonDB
master