
рдкрд░рд┐рдЪрдп
рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╣рдореЗрд╢рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рдерд╛ рдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рддрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рддреБрд░рдВрдд рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ, рдореНрдпреВрдЯреЗрд╢рди рд▓рд┐рдЦреЗрдВ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░реЗрдВ ... рд╕рдм рдХреБрдЫ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ?)
рдЬрдм рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рддреЛ рдХреЛрдб рдХреНрдпреЛрдВ рд▓рд┐рдЦреЗрдВ?
(рдЕрджреНрдпрддрди)рдореИрдВ рдЖрдкрдХреЗ
рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рд╢рд┐рд▓реНрдк рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ -
рд╣реНрдпреВрдХреНрд╕ !
рдЕрдм рддрдХ, рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ NodeJS рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдЕрд╕реНрд╡реАрдХрд░рдг: рд╣реНрдпреВрдХреНрд╕ рдХреЗрд╡рд▓ рдордиреЛрд░рдВрдЬрди рдФрд░ рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдПрдХ рдкреВрд░реНрдг рд░реВрдкрд░реЗрдЦрд╛ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдЪрд▓рддреЗ рд╣реИрдВредрдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ?
рдПрдХ рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╣реИред рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рдЙрд╕реЗ "рдЧреЗрдЯрд░реНрд╕", "рдореНрдпреВрдЯреЗрдЯрд░", "рдПрдХреНрд╢рди", "рдХрдорд┐рдЯ", рдЖрджрд┐ рдЬреИрд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╢рдмреНрджреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓реЗрдЧрд╛ред
рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ?
рдЕрдм рддрдХ, рдмрд╕
рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗред
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЙрдкреА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рдХрд╣реАрдВ
рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ
рдкреИрдХреЗрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
"dependencies": { "huex": "file:../huex/" }
рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХ рд╣реНрдпреВрдХреНрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
рдпрд╛ рдЗрд╕реЗ рдФрд░ рднреА рдЖрд╕рд╛рди
рдмрдирд╛рдПрдВ , рдХреНрдпреЛрдВрдХрд┐ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
npm i -S https://github.com/vssenko/huex.git
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдФрд░ рд╕рд░рд▓ред рдЪрд▓реЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рд╣рдорд╛рд░реЗ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╡рд░реНрддрди \ рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рджреЛ рдИрд╡реЗрдВрдЯ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ: рдбреЗрдЯрд╛ {рдХреБрдВрдЬреА, рдорд╛рди} рдХреЗ рд╕рд╛рде
рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдбреЗрдЯрд╛ {рдореВрд▓реНрдп} рдХреЗ рд╕рд╛рде
рдХреБрдВрдЬреА ред
(рдЕрджреНрдпрддрди)рдФрд░ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдкреИрд░реЗрдВрдЯ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред
рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░?
рдмреЗрд╢рдХ: рдЖрдк рдЬрд╛рдиреЗ рдкрд░ рдЧрд╣рд░реА рдиреЗрд╕реНрдЯреЗрдб рдлрд╝реАрд▓реНрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
const Huex = require('huex'); const storage = Huex(); storage.abcde = 5;
рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдЕрджреНрдпрддрди)рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░?
рд╣рд╛рдБ! рдЕрдм рд╣реНрдпреВрдХреНрд╕ рди рдХреЗрд╡рд▓ рд╕рд░рд▓ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЙрдиреНрд╣реЗрдВ рдЪрд▓рддреЗ-рдЪрд▓рддреЗ рд╣реНрдпреВрдХреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ!
sut.subSut = { a: 5 }; sut.on('change:subSut', (e) => { console.log(e.key);
рдФрд░ рднреА рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдХреНрдпрд╛ рдкрдХрдбрд╝ рд╣реИ?
рдпрд╣ рд╕рдм рдЬрд╛рджреВ
рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╡реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
(рдЕрдкрдбреЗрдЯ)рдирд┐рд╖реНрдХрд░реНрд╖
рджреЛ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ (рд╢рд╛рдо) рдХреЗ рд▓рд┐рдП, рдЬреЗрдПрд╕ рд╕рдореБрджрд╛рдп рдХрд╛ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдврд╛рдВрдЪрд╛ рд╣реИред
рд╣реНрдпреВрдХреНрд╕ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- рдСрдмреНрдЬреЗрдХреНрдЯ \ array рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛
- рд╕рд░рд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдорд╛рди рд╕рд╣реЗрдЬреЗрдВ
- рдЯреНрд░рд┐рдЧрд░ рдШрдЯрдирд╛рдУрдВ рдЬрдм рдПрдХ рд╡рд╕реНрддреБ рдпрд╛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдХреЛ рдмрджрд▓ рд░рд╣реА рд╣реИ
- рдЪрд▓рддреЗ-рдЪрд▓рддреЗ, Huex рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ / рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ
- рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реАрд▓реНрдб рдпрд╛ рд╕рд░рдгреА рдлрд╝реАрд▓реНрдб рдмрджрд▓рддреЗ рд╕рдордп рдЯреНрд░рд┐рдЧрд░ рдЗрд╡реЗрдВрдЯ
- рдЪрд▓рддреЗ-рдлрд┐рд░рддреЗ, рдЦрд╛рд▓реА рдЬрдЧрд╣ рдХреЛ рддрдм рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рдХреЛрдИ рднреА рдирджрд╛рд░рдж рдХреНрд╖реЗрддреНрд░ (рдПрдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╡рд┐рд╢реЗрд╖рддрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛) рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ
рдХреНрдпрд╛ Huex рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреИрд╕реЗ:
- рдЬрд▓реНрджреА рдмрдиреЛ :-) рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдбреНрд░реИрдЧ 13 рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЕрднреА рднреА рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЧрддрд┐ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЪрд╛рдирдХ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред