В примере, который у вас есть - вы не подписываетесь ни на что ... RxJS ленив, и он будет подписаться на mouseDowns
только тогда, когда вы подпишетесь на итоговый наблюдаемый, и, конечно же, он отменит подписку на подчеркивание наблюдаемых, когда вы будете отказаться от подписки на результат.
Но, как правило, да, это хорошая практика для отмены подписки, когда вы подписываетесь на что-то ... Но - при использовании RxJS, как правило, вам не нужно подписываться вручную, а когда вам нужно - вероятность того, что вам нужна подписка пока приложение работает (так что не нужно отписываться).
Единственные исключения - когда вы разрабатываете собственные операторы, или подключения к чему-то вне ...
Например, если у вас есть реагировать компонент и использовать жизненный цикл скакательных суставов для подписки на обновления на горе, и отменить подписку при размонтировании.
Вот моя библиотека для этой цели https://github.com/zxbodya/rx-react-container - он сочетает в себе наблюдаемых, предметы и реагировать на новые компоненты наблюдаемый с визуализируемыми элементами ...
const app$ = createContainer(
App, // react component
{totalCount$}, // observables with data
{plusOne$, minusOne$} // observers for user actions
);
const appElement = document.getElementById('app');
const appSubscription = app$.forEach(renderApp=>render(renderApp(), appElement));
В результате у вас есть только одна подписки на управление для всего приложения (appSubscription
), и не нужно отказаться от подписки - поскольку он используется во время работы приложения.
То же самое, о маршрутизации и отписываться при навигации прочь - в упрощенном случае вы будете иметь только flatMapLatest
над наблюдаемым с текущим местоположением, которая будет возвращать наблюдаемые (как app$
выше) для каждого места ... И снова вам не нужно подписаться/отписаться вручную - flatMapLatest
сделают это внутренне.
В своем коде вы не подписываетесь ни на что, поэтому отказаться от подписки нет. –
@torazaburo: Код немного «псевдо» - но я думаю, что была подписка на получение «elmt.mouseDowns» Observable ... – Wolfgang