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

OSCHINA-MIRROR/geekact-redux-model

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 09:29 f86f7e3

9.0.6

[Улучшение] Логика поверхностного сравнения Map и Set была улучшена для снижения вероятности повторной отрисовки [Исправление] В ESM не удалось правильно распознать сжатие кода

9.0.4

[Исправление] Реакт-редукс не может корректно обрабатывать объекты типа Map и Set при поверхностном сравнении

9.0.3

[Новая функциональность] В сервисе Taro в параметрах httpResponse добавлен атрибут config

9.0.2

[Исправление] Проблема циклического обращения модулей

9.0.1

[Исправление] Ошибки immer в окружениях без поддержки Proxy

9.0.0

Нестабильные изменения

  • Переработана автоматическая загрузка библиотек redux и react-redux, удалите эти библиотеки из проекта
yarn remove redux react-redux @types/react-redux
- import { Middleware } from 'redux'
+ import { Middleware } from '@redux-model/react'

- import { Provider } from 'react-redux'
+ import { Provider } from '@redux-model/react'- импорт { connect } из 'react-redux'
+ импорт { connect } из '@redux-model/react'

Переработан метод экземпляра модели `effects()` и переименован в `subscriptions()`, что более точно передает его назначение:

```diff
класс TestModel расширяет Model {
- защищенный effects(): Effects<Данные> {
+ защищенный subscriptions(): Subscriptions<Данные> {
    возвращаем [
      ...,
      ...,
    ];
  }
}

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

Переработан атрибут свойства запроса requestConfig и переименован в requestOptions, унификация названий.

Удалён метод экземпляра модели autoRegister(), модель всегда автоматически регистрируется.

Удалён метод экземпляра модели register(). Вам больше не требуется выполнять регистрацию вручную. При разделении кода, если вы хотите заранее зарегистрироваться, просто импортируйте 'xyzModel'.

Удалён параметр alias конструктора модели, даже если есть одинаково названные классы, можно перезаписать метод getReducerName().

Удалён метод HttpService.transformSuccessData, заменён на новый атрибут HttpService.onRespondSuccess.

Удалён атрибут createReduxStore.onCombineReducers, отсутствие подходящих сценариев использования.## Новые возможности

  • Добавлена глобальная функция resetStore(), которая позволяет сбросить данные всех моделей, поддерживаются также частичные сбросы данных
import { resetStore } from '@redux-model/react';

logout().then(() => {
+ resetStore();
});
  • Добавлен метод экземпляра модели keepOnResetStore(), который защищает текущую модель от влияния при сбросе данных
class TestModel extends Model<Data> {
  protected initialState(): Data {
    return {};
  }
``````markdown
## Изменения

* Добавлен статический метод модели `init()`, который позволяет отложить автоматическую регистрацию для удовлетворения потребностей в кастомной инициализации данных <br>

```diff
interface Data {
  counter: number;
}

class TestModel extends Model<Data> {
+ protected readonly initCounter: number;

  constructor(p1: number) {
    super();
+   this.initCounter = p1;
  }

  protected initialState(): Data {
    return {
+     counter: this.initCounter,
    };
  }
}

- const testModel = new TestModel(10);  // testModel.data.counter === undefined
+ const testModel = TestModel.init(10); // testModel.data.counter === 10

Устранение проблем

  • Исправлена проблема с непарсингом данных при возникновении ошибки запроса в Taro-h5
  • Исправлена проблема с отсутствием поддержки операции abort в Taro-h5

Версия 8.2.2

  • Поддержка ES модулей
  • В HttpService добавлено свойство onRespondSuccess вместо старого свойства transformSuccessData
  • Улучшение производительности Redux

  • Поддержка ES модулей
  • В сервисах добавлено свойство onRespondSuccess для замены старого свойства transformSuccessData
  • Улучшение производительности Redux#### Версия 8.2.1
  • Вызов onStoreCreated() после завершения восстановления хранилища

  • Вызов onStoreCreated() отложен до завершения восстановления хранилища

Версия 8.2.0

  • Поддержка запросов GraphQL

  • Поддержка запросов GraphQL

Версия 8.1.3

  • Опция compose теперь поддерживает строки default и redux-devtools

const store = createReduxStore({
  compose: process.env.NODE_ENV === 'production' ? 'default' : 'redux-devtools',
});

Версия 8.1.2

  • Отменено использование метода patch в Taro
  • Исключение не будет выбрасываться, если пользователь не обрабатывает его через catch в действии
  • Исправление типа выборки для метаданных и состояния загрузки
  • Обновление пакета immer до версии 7.0.9

  • Отменено использование метода patch в Taro
  • Исключение не будет выбрасываться, если пользователь не обрабатывает его через catch в действии
  • Исправление типа выборки для метаданных и состояния загрузки
  • Обновление пакета immer до версии 7.0.9

Версия 8.1.0

[Новая функциональность] Поддержка кастомных значений successText, failText и hideError для отдельных запросов
[Улучшение] Уменьшение размера сборки


[Новая функциональность] Поддержка кастомных значений successText, failText и hideError для отдельных запросов
[Улучшение] Уменьшение размера сборки

# 8.0.1
[fix] PersistGate забыл вызвать метод `isCompressed`<br>
[chore] Обновлен пакет tslib с версии 2.0.0 до 2.0.1<br>
[chore] Уменьшен размер сборки
```-----------------------------------------

[разрушение] Переименован метод `initReducer` в `initialState`<br>
[разрушение] Переименован метод `changeReducer` в `changeState`<br>
[разрушение] Удалён метод `resetReducer`<br>
[chore] Уменьшен размер сборки

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

-----------------------------------------

```typescript
class Test extends Model {
  t1 = this.action((state, payload: object) => {
    // ...
  }, {
    afterSuccess: (action) => {
      console.log(action.payload);
    },
    // duration: 1000,
  });
}

7.3.0

[добавление] Поддержка события afterSuccess для обычных действий


7.2.1

[тип] Исправлен тип для действия при ошибке
[оптимизация] Ускорено выполнение persist rehydrate
[оптимизация] Уменьшено количество вызовов getData() до одного


7.2.0

[добавление] Теперь подписчики после событий могут использовать время задержки.
[добавление] В модуль persistence добавлена кэширование для противостояния горячему переопределению входа.
[рефакторинг] Оптимизирован размер сборки.


7.1.0

[добавление] Метод useData() модели теперь принимает shallowEqual как второй параметр.
[добавление] Сервис HTTP получил конфигурационное свойство throttleTransfer для глобального управления кэшированием.
[рефакторинг] Оптимизирован размер сборки.

7.0.1

[фикс] Taro H5 не может найти Taro.getStorage
[фикс] Taro выбрасывает ошибку при отсутствии ключа в хранилище
[функциональность] Функция createReduxStore() принимает параметр с дефолтным значением {}--------------------------------------

[Исправление] Taro H5 не может использовать Taro.getStorage напрямую
[Исправление] Taro выбрасывает ошибку, когда ключ хранения не найден
[Новая функциональность] Функция createReduxStore() теперь принимает параметр с дефолтным значением: {}

7.0.0

Нестабильные изменения

  • Устарели пакеты @redux-model/web и @redux-model/react-native, используйте вместо них @redux-model/react.
  • Минимальная версия Taro должна быть v3.0.
  • Минимальная версия Vue должна быть v3.0.
  • Переименован метод Model.isLoading() в Model.useLoading().
  • Хранилище должно реализовать Promise.
  • HttpService предоставляет универсальный тип данных для ошибок и больше не экспортирует HttpResponse для пользователя.
  • Параметры throttling преобразованы в объект опций.

Новые возможности

  • Добавлен ComposeAction для управления несколькими запросами, предоставляющий методы loading, useLoading, meta, useMeta.
  • Добавлена функция передачи в throttling.
  • Предоставлено новое хранилище.
  • Hooks для Vue.
  • Компонент PersistGate для Vue для работы с сохранением.
  • Поддержка afterPrepare, afterSuccess и afterFail для выполнения других действий после подготовки, успеха или провала запроса.
  • Обновлены зависимости до последних версий.

6.9.2

[fix] Используется встроенный оператор delete для совместимости со старыми устройствами и браузерами

6.9.1

[fix] Запрос query не работает в react-native# 6.9.0 [feat] Поддерживается вызов действия внутри другого действия, называемого "под-действием"

6.8.3

[fix] Совместимость с HTTP статусом и statusCode Taro #6

6.8.2

[feat] ES6 синтаксис понижен для поддержки старых браузеров

6.8.0

[feat] Новый API сохранения против компрессии
[feat] Теперь данные сохранения могут быть отфильтрованы по модели

6.7.10

[fix] Добавлено определение типа: clearThrottle(): void
[fix] Очистка кэша при отключении throttling

6.7.9

[fix] Поддержана очистка throttling

class Test extends Model {
  getList = api.action(() => {
    return this.get('/api/').throttle(5000);
  });
}
const test = new Test();

// Очистка через метод
test.getList.clearThrottle();

6.7.8

[fix:Taro] Используется @tarojs/taro вместо react
[fix:Taro] Taro не компилирует node_modules для окружения h5

6.7.5

[fix] Форматирование строки запроса массива в тип скобок

6.7.4

[fix] Сравнение конфигурации persist перед ре-гидратацией

6.7.3

[fix] Получение правильного имени редуктора для одного экземпляра класса несколько раз

6.7.2

[fix] Отмена проверки регистрации до создания хранилища

6.7.1

[refactor] Улучшение производительности persist

6.7.0

[feat] Добавление persist для редуктора

Прерыватель изменения

Переименование cache() в throttle() в цепях действий запроса

6.6.0

[feat] Действия запроса всегда имеют мета или метас# 6.5.11 [фикс:] changeReducer() привязывает неправильное имя экземпляра

6.5.6

[новая функциональность:] Ленивая мета для повышения производительности

6.5.2

[фикс:] Незначительные дополнительные опции от сервиса для кэша

6.5.0

[новая функциональность:] Добавление опции кэширования к действию запроса

6.4.2

[фикс:] Состояние redux не запускает наблюдателя в vue

6.4.0

[новая функциональность:] Параметр createReduxStore изменён как объект конфигурации

6.3.0

[новая функциональность:] Добавление методов clone, isSuccess, transformSuccessData в HttpService

6.2.0

[новая функциональность:] Новое свойство withMeta действия запроса для замены metaKey

6.1.3

[фикс:] Совместимость с сжатием в среде разработки

6.1.2

[фикс:] Кorrectный метод запроса

6.1.1

[новая функциональность:] Обмен именем метода службы и свойством uri
[фикс:] Отсутствие внедрения шаблонных параметров
[фикс:] Добавление цепочки методов hideError

6.0.0

Прерыватель изменения

Комплексное переопределение действия запроса для уменьшения количества кода

5.12.0

[новая функциональность:] Объединение actionRequest и actionNormal в action

5.11.0

Прерыватель изменения

[новая функциональность:] Переименование свойства с meta на metaKey при создании действия запроса

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/geekact-redux-model.git
git@api.gitlife.ru:oschina-mirror/geekact-redux-model.git
oschina-mirror
geekact-redux-model
geekact-redux-model
master