Димитар Георгиев

Promise + Async/Await + работа с Vuex (story)

Покупки 0 комментариев
 Promise + Async/Await + работа с Vuex (story)
  • Async style - Calback ето функция въйзъйваемой после обработке основной 
    програм и является функция обрабоботчика резултата. Calback въйзъйвается 
    на какого то събитие. getSum возвращает суму, причом она не просто возвращает а 
    въйзъйвает функцию Callback что бъй она обработала нам етой же результат
  • Promise - Изключение в том что любая функция каторая работает с промисами она 
    возвращает промис, и такой промис всегда принемает два аргумента: resolve, 
    reject . 
    Eто тоже функция каторая въйзивается в случаи успешнин ршализация какого то
    действия и reject в случай неуспешна реализация какога то действия. В конечном 
    счете, възов resolve как функция отвечаещая за успешном результате. 
    я разплатился
    паметю за бъйстродействие Teпер вместо того что передават сюда Callback, 
    мъй подписъйваемся на резултат етого promis с помощу then,  и результат 
    ето тоже 
    функция что то типа Callback, но прелест в том что уже боле понятно когда у нас будет 
    праизведе етот resolve - в тот момент когда будет произведется сума и етой then
    (Callback) тоже будет возвращат promise. Eто неймоверно важно с гледна точка 
    програмирование, мъй примерно делаем что то с етой сума и сдес можем делаем 
    всю что угодно и вот сдес можем продолжим подписъйваемся на результат.
    Тъй всегда подписъйваешся на следущий шаг и возвращаеш 
    в качество 
    аргумента callback.
  • Async/await - Await ето завоалированнъй then, я гаваря что await подажди 
    пока въйполнится вот ета функция и только после того ето функция въйполниться
    я продалжу въйполнение программу. Разница колосална: Здес Callback нету в принципе,
    етой псевдосинхроннъй код, он 
    пишется как 
    буд-то он синхроннъй. Я исползувал await специально что бъй притормажеват етой
    программу,
    конкретно въйзов вот етой юфункций, ждат пока въйполнится действие работа
    с база даннъй и толко после етого продолжаю манипулироват вот етой база даннъй.
    Код пишется как будто бъй он синхроннъй, хотя на самом деле он говорит,
    въйполнит вот ето а хатя на самом деле 
    огда завершиш
    запускай вот ето функцию заново с вот етом строчке с каким - то результата.
    
    Vuex отвечает за хранение, опрос, обработку даннъй. Toчка входа всех наши даннъй 
    
    state: {} - Состояние нашего хранилище, всегда иммютабелно (неизменен). В стейт
    та информация нашего текущего состояние даннъй
    
    mutations {} - Ето функций каторъй приводит к измененю стейта. Toлко функция setPost() 
    может изменит състояние state и мъй ето и делаем но через actions 
    
    actions {} - Function {} каторъй приводит к мутацией, скачеваем постъй от чего удобно
    и патом через коммит въйзеваем етой мутацию
  • state в setPost- копие state и следуящ шаг в нашем база даннъй .Вместе того имет доступ к 
    нашим поста мъй должни их въйсчитават через computed т.е с помощю this.$store.state мъй
    оброщаемся к нашему стате. Я заранее въйзивал через dispatch действие downloadPosts что 
    бъй они скачалис в fakedata и загрузилис в state и толко после етого я сделал пойск по id .
    Actions всегда являетьси синхроннами и всегда возвращает промис, я исползвал async/await что 
    бъй ето dispatch сначала въйполнился и загрузилис все постуй, толко после етого я начал искат
    нужнъй мне. Eсли должнъй изменят нашей состояние . Мъй проверяем если у нас ест етих даннъй и
    если нету мъй загрузаем из fakedata  и вложим в localStorage и после етого уже спокойно 
    работаем localStorage.
    
    Aвсолютнъй путь с "/ " Относителен без " ".
  • Е Tак как мъй импортирали приложение через store, тепер есть доступ из любого компонента.
    Мъй должни их въйсчитавать через computed. Когда обнавлял етой страничку state
    оставалься пустъй, и перед тем как getPostById я запрашавал я через dispatch заранее 
    ействия downloadPost что бъй они скачалис у меня в fakedata и загрузилис в моей 
    состяние. Только после етого я делал пойск по ID и так как у нас действия всегда 
    является асинхроннами я исползовал async/await что бъй етой dispatch с начала въйполнился,
     сначала загрузилис все постъй только после етого я стал искал по всем постам, нужнъй мне. 
    В таким же образам через store будем обшаться к нашем vuex приложение. Если будет 
    нужно сохранит мъй также через dispatch будем въйзъйват action каторъй будет в каким 
    то образам манипулироват с наша база даннъй. Будет ето работат с localStorage либо Server 
    нужно бъйло продумат на момент реализация ето хранилище даннъйх.
    
    Vuex хранилище состояния позволяет нам манипулироват ето состояния и въйзиват какие 
    то действия приводящи к етой мутация. Берет действия за обработка, хранение и обнавление 
    даннъйми каторъй у нас ест в приложение. 
  • Если нужно делат каким то действия каторъй нужно манипулироват состояние и етой
    состояние должно придти из компонента то соответствено просто создадем на етой действие функци
    
    
  • Задание при клики на кнопочку Save ети даннъй отправлялис в действия updatePost не
    только description  а и все осталнъйе поля сохранилис и что бъй все ети сохранения попаали
    в localStoradge  

 

Назад Вперед
Войдите или зарегистрируйтесь
чтобы оставить комментарий