[Улучшение] Логика поверхностного сравнения Map и Set была улучшена для снижения вероятности повторной отрисовки [Исправление] В ESM не удалось правильно распознать сжатие кода
[Исправление] Реакт-редукс не может корректно обрабатывать объекты типа Map и Set при поверхностном сравнении
[Новая функциональность] В сервисе Taro в параметрах httpResponse добавлен атрибут config
[Исправление] Проблема циклического обращения модулей
[Исправление] Ошибки immer в окружениях без поддержки Proxy
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
onRespondSuccess
вместо старого свойства transformSuccessData
onRespondSuccess
для замены старого свойства transformSuccessData
onStoreCreated()
после завершения восстановления хранилищаonStoreCreated()
отложен до завершения восстановления хранилищаcompose
теперь поддерживает строки default
и redux-devtools
const store = createReduxStore({
compose: process.env.NODE_ENV === 'production' ? 'default' : 'redux-devtools',
});
patch
в Tarocatch
в действииpatch
в Tarocatch
в действии[Новая функциональность] Поддержка кастомных значений 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,
});
}
[добавление] Поддержка события afterSuccess
для обычных действий
[тип] Исправлен тип для действия при ошибке
[оптимизация] Ускорено выполнение persist rehydrate
[оптимизация] Уменьшено количество вызовов getData()
до одного
[добавление] Теперь подписчики после событий могут использовать время задержки.
[добавление] В модуль persistence
добавлена кэширование для противостояния горячему переопределению входа.
[рефакторинг] Оптимизирован размер сборки.
[добавление] Метод useData()
модели теперь принимает shallowEqual
как второй параметр.
[добавление] Сервис HTTP
получил конфигурационное свойство throttleTransfer
для глобального управления кэшированием.
[рефакторинг] Оптимизирован размер сборки.
[фикс] Taro H5 не может найти Taro.getStorage
[фикс] Taro выбрасывает ошибку при отсутствии ключа в хранилище
[функциональность] Функция createReduxStore()
принимает параметр с дефолтным значением {}
--------------------------------------
[Исправление] Taro H5 не может использовать Taro.getStorage напрямую
[Исправление] Taro выбрасывает ошибку, когда ключ хранения не найден
[Новая функциональность] Функция createReduxStore() теперь принимает параметр с дефолтным значением: {}
@redux-model/react
.v3.0
.v3.0
.HttpResponse
для пользователя.loading, useLoading, meta, useMeta
.afterPrepare
, afterSuccess
и afterFail
для выполнения других действий после подготовки, успеха или провала запроса.[fix] Используется встроенный оператор delete для совместимости со старыми устройствами и браузерами
[fix] Запрос query не работает в react-native# 6.9.0 [feat] Поддерживается вызов действия внутри другого действия, называемого "под-действием"
[fix] Совместимость с HTTP статусом и statusCode Taro #6
[feat] ES6 синтаксис понижен для поддержки старых браузеров
[feat] Новый API сохранения против компрессии
[feat] Теперь данные сохранения могут быть отфильтрованы по модели
[fix] Добавлено определение типа: clearThrottle(): void
[fix] Очистка кэша при отключении throttling
[fix] Поддержана очистка throttling
class Test extends Model {
getList = api.action(() => {
return this.get('/api/').throttle(5000);
});
}
const test = new Test();
// Очистка через метод
test.getList.clearThrottle();
[fix:Taro] Используется @tarojs/taro вместо react
[fix:Taro] Taro не компилирует node_modules для окружения h5
[fix] Форматирование строки запроса массива в тип скобок
[fix] Сравнение конфигурации persist перед ре-гидратацией
[fix] Получение правильного имени редуктора для одного экземпляра класса несколько раз
[fix] Отмена проверки регистрации до создания хранилища
[refactor] Улучшение производительности persist
[feat] Добавление persist для редуктора
Переименование cache()
в throttle()
в цепях действий запроса
[feat] Действия запроса всегда имеют мета или метас# 6.5.11
[фикс:] changeReducer()
привязывает неправильное имя экземпляра
[новая функциональность:] Ленивая мета для повышения производительности
[фикс:] Незначительные дополнительные опции от сервиса для кэша
[новая функциональность:] Добавление опции кэширования к действию запроса
[фикс:] Состояние redux не запускает наблюдателя в vue
[новая функциональность:] Параметр createReduxStore изменён как объект конфигурации
[новая функциональность:] Добавление методов clone
, isSuccess
, transformSuccessData
в HttpService
[новая функциональность:] Новое свойство withMeta
действия запроса для замены metaKey
[фикс:] Совместимость с сжатием в среде разработки
[фикс:] Кorrectный метод запроса
[новая функциональность:] Обмен именем метода службы и свойством uri
[фикс:] Отсутствие внедрения шаблонных параметров
[фикс:] Добавление цепочки методов hideError
Комплексное переопределение действия запроса для уменьшения количества кода
[новая функциональность:] Объединение actionRequest и actionNormal в action
[новая функциональность:] Переименование свойства с meta
на metaKey
при создании действия запроса
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )