l
Size: a a a
l
NK
NK
NK
🦉
NK
l
l
l
NK
l
l
З
l
NK
NK
const a = observable("first name");Здесь сторы "a" и "b" - это сторы которые могут менять свое значение. Стор "c - это стор который зависит от "a" и "b" и должен вычисляться каждый раз когда меняется стор "a" или "b". Стор "d" - это стор который зависит от "c" и должен вычисляться когда меняется стор "c". А стор "e" - это реакция которая зависит от стора "a" и также зависит от стора "d" но не постоянно а по условию - в определенный момент (когда .length > 5) зависит а в другой момент (когда .length <= 5) не зависит от стора "d". И есть два требования. Первое - если меняется стор "a" то стор "e" должен вычисляться только один раз а не дважды (так как он два раза зависит от стора "a" - прямо и через промежуточные "d" и "c").Второе - если от computed-стора никто не зависит то он вычисляться не должен - то есть если в определенный момент стор "e" зависит только от стора "a" и не зависит от стора "d" то стор "d" (так как от него никто не зависит) вычисляться не должен. А если стор "d" вычисляться не должен то соотвественно и стор "c" тоже (так как от "c" тоже никто не зависит). Но в следующий раз если стор "e" снова начнет зависеть от стора "d" то вот тогда и следует перевычислить стор "d" а вместе с ним и стор "c".
const b = observable("last name");
const c = computed(()=>a.get() + " " + b.get())
const d = computed(()=>"hello " + c.get())
const e = reaction(
()=>
a.get().length > 5
? a.get()
: d.get()
,
(res)=>console.log(res)
);
l
NK
З
l