setState - bu funksiya state'ni update qilishlik uchun, funksiya bir necha turli xil formatdagi parameterlar qabul qila olgani uchun ichida tekshiruvlar soni ko'proq, lekin baribir asosiy ishi stateni yangilash. Stateni yangilashdan oldin Object.is() bilan tekshiruv ham bor, agar state qiymatlari o'zgarmagan bo'lsa stateni yangilab ortiqcha hisob-kitob qilmaslik uchun.Note:
Object.is({}, {}) // false
Xullas agar set qilinganda uzatilgan state bilan bizdagi state teng (shallow equal) bo'lmasa, stateni yangilaymiz, va state yangilangani haqida hamma subscriberlarni xabardor qilishlik uchun listeners'dagi har bir funksiyani chaqirib chiqamiz.4.
getState - state'ni qaytaruvchi funksiya, store.getState() qilsak, barcha actionlar, va ayni hozirgi paytda actual bo'lgan data'ni olamiz. 5.
subscribe - store o'zgarishiga "подписка" qilish uchunMisol uchun sahifada todolar sonini ko'rsatishimiz kerak:
todoListStore.subscribe((state, prevState) => {
todoListCounterDiv.innerHTML = state.todos.length
})
subscribe funksiyasi unsubscribe qilishlik uchun funksiya ham qaytaradi, masalan todolar sahifasidan boshqa sahifaga o'tish oldidan: const unsubscribeTodoList = todoListStore.subscribe((state, prevState) => {
todoListCounterDiv.innerHTML = state.todos.length
})
unsubscribeTodoList()
window.location.pathname = '/other-page'
#zustand #source_code@elyor_dev