Dva: ΠœΠΎΠ³ΡƒΡ‚ Π»ΠΈ подписки Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ?

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 19 ΠΎΠΊΡ‚. 2016  Β·  17ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: dvajs/dva

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сСрвСра ΠΊ Π²Π΅Π±-сокСту, Π²Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ истории ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚. Π”.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° бСрутся эти настройки ΠΈ keyEvent, ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ссли Π²Π΅Π±-сокСт ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΎΠ±ΠΎΠ²Π°Π» сокСт, просто для справки.

// model

import * as service from '../services/socket';

subscriptions: {
    socket({dispatch}){ // socketη›Έε…³
        return service.listen(data => {
            switch (data.type) {
                case 'connect':
                    if (data.state === 'success') {
                        dispatch({
                            type: 'connectSuccess'
                        })
                    } else {
                        dispatch({
                            type: 'connectFail'
                        })
                    }
                    break;
                case 'welcome':
                    dispatch({
                        type: 'welcome'
                    });
                    break;
            }
        })
    }
},

// services

import io from 'socket.io-client';

let socket = '';

export function listen(action) {
    if (socket === '') {
        try {
            socket = io("localhost:3000");
            action({
                type: 'connect',
                state: 'success'
            });
        } catch (err) {
            action({
                type: 'connect',
                state: 'fail'
            });
        }
    }
    socket.on('welcome', () => {
        action({
            type: 'welcome'
        })
    })
}

ВсС 17 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

setup ΠΈ keyEvent - ΠΊΠ»ΡŽΡ‡ΠΈ, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ бСсполСзныС ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ любой строкой.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, этот ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ здСсь ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Он просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стороннСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π― ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понимаю?

Π”Π°, здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅". Π’ настоящСС врСмя ΠΎΠ½ Π² основном ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для согласования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° с эффСктами ΠΈ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ. ПозТС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ функция ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ подписки ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡.

Я понимаю, спасибо.
Но я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² эти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ смысл ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ обсуТдСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ я :)

подписки просто ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ мСсто для подписки Π½Π° Π΄Π°Π½Π½Ρ‹Π΅. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈ история Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ подписки ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° потрСбуСтся сторонняя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов. Π­Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅? Dispatch - это ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ redux, Π° история - это история Π² response-router, понятно?

@ roc2539 Π”Π°.

ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ состояния ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° Π² настройкС Π² подписках?

@gzbigegg НСт, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ дСйствиС ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ эффСкту ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

subscriptions: {
    setup ({ dispatch }) {
      dispatch({ type: 'query' })
    }
}

Π•ΡΡ‚ΡŒ Π΄Π²Π° вопроса. НС знаю, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ сказано, Ρ‡Ρ‚ΠΎ вяз Π½ΠΈΠΊΠΎΠ³Π΄Π° с Π½ΠΈΠΌΠΈ Π½Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π», ΠΈ я Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ понимаю подписки.

  1. ПослС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ истории ΠΈ выполнСния history.listen ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°. Π― Π½Π΅ знаю, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ я понял.
  2. Когда Π±ΡƒΠ΄ΡƒΡ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ подписки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ проходят Π² рассылкС?

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² подписки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, websocket

Как Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° дСйствия Π² настройкС

Π’ рСгистрации подписки @ roc2539 Π½Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΎ сроках ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π·Π°ΠΊΠ°Ρ‡ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°

ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Ρ…ΡΡˆ-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° установки Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ URL-адрСса, Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.
Но с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ browserHistory всС Π² порядкС.

 setup ({ dispatch }) {
      console.log('models-app') // ζ‰‹εŠ¨ζ”Ήε˜urlεœ°ε€οΌŒδΈδΌšθΏ›ζ­€ζ–Ήζ³•
      dispatch({ type: 'query' })

    },

ΠŸΡ€ΠΎΠ±ΠΎΠ²Π°Π» сокСт, просто для справки.

// model

import * as service from '../services/socket';

subscriptions: {
    socket({dispatch}){ // socketη›Έε…³
        return service.listen(data => {
            switch (data.type) {
                case 'connect':
                    if (data.state === 'success') {
                        dispatch({
                            type: 'connectSuccess'
                        })
                    } else {
                        dispatch({
                            type: 'connectFail'
                        })
                    }
                    break;
                case 'welcome':
                    dispatch({
                        type: 'welcome'
                    });
                    break;
            }
        })
    }
},

// services

import io from 'socket.io-client';

let socket = '';

export function listen(action) {
    if (socket === '') {
        try {
            socket = io("localhost:3000");
            action({
                type: 'connect',
                state: 'success'
            });
        } catch (err) {
            action({
                type: 'connect',
                state: 'fail'
            });
        }
    }
    socket.on('welcome', () => {
        action({
            type: 'welcome'
        })
    })
}

Π― пытался Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ подписку с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ всС это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, поэтому эта подписка обСспСчиваСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ истории πŸ˜„

Подписки: {
setup ({dispatch}) {
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ({Ρ‚ΠΈΠΏ: 'запрос'})
}
} Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ дСйствия ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, ΠΎΠ½ΠΎ фактичСски Π½Π΅ выполняСт дСйствия подписки.

Π’Π΄Ρ€ΡƒΠ³ понял

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ