1甥温、Vuex:一個專為 Vue.js 應用程序開發(fā)的狀態(tài)管理模式。
下載命令:npm install --save vuex
Vuex 應用的核心是 store
改變 store 中的狀態(tài)的唯一途徑就是顯式地提交 (commit) mutation
狀態(tài)存儲是響應式的
Action 提交的是 mutation妓布,而不是直接變更狀態(tài)
Action 可以包含任意異步操作
Action 通過 store.dispatch 方法觸發(fā)
2姻蚓、
可迭代對象:我們已經(jīng)知道可以對list、tuple匣沼、str等類型的數(shù)據(jù)使用for...in...的循環(huán)語法從其中依次拿到數(shù)據(jù)進行使用狰挡,我們把這樣的過程稱為遍歷,也叫迭代。
我們把可以通過for...in...這類語句迭代讀取一條數(shù)據(jù)供我們使用的對象稱之為可迭代對象(Iterable)**
判斷對象是否可迭代:使用 isinstance() 判斷一個對象是否是 Iterable 對象
*可迭代對象的本質(zhì)就是可以向我們提供一個這樣的中間“人”即迭代器幫助我們對其進行迭代遍歷使用加叁。
*在迭代一個可迭代對象的時候倦沧,實際上就是先獲取該對象提供的一個迭代器,然后通過這個迭代器來依次獲取對象中的每一個數(shù)據(jù).
*可以通過iter()函數(shù)獲取這些可迭代對象的迭代器
總:一個具備了__iter__方法的對象它匕,就是一個可迭代對象
當我們已經(jīng)迭代完最后一個數(shù)據(jù)之后展融,再次調(diào)用next()函數(shù)會拋出StopIteration的異常,來告訴我們所有數(shù)據(jù)都已迭代完成豫柬,不用再執(zhí)行next()函數(shù)了告希。
一個實現(xiàn)了__iter__方法和__next__方法的對象,就是迭代器烧给。
除了for循環(huán)能接收可迭代對象燕偶,list、tuple等也能接收础嫡。
如果想要一個對象成為一個可以迭代的對象(即可以使用for)指么,那么必須實現(xiàn)__iter__方法
3、生成器:為了達到記錄當前狀態(tài)榴鼎,并配合next()函數(shù)進行迭代使用伯诬,我們可以采用更簡便的語法,即生成器(generator)巫财。生成器是一類特殊的迭代器
只要在def中有yield關(guān)鍵字的 就稱為 生成器姑廉;使用了yield關(guān)鍵字的函數(shù)不再是函數(shù),而是生成器
yield關(guān)鍵字作用:保存當前運行狀態(tài)(斷點)翁涤,然后暫停執(zhí)行桥言,即將生成器(函數(shù))掛起
將yield關(guān)鍵字后面表達式的值作為返回值返回,此時可以理解為起到了return的作用
*可以使用next()函數(shù)讓生成器從斷點處繼續(xù)執(zhí)行葵礼,即喚醒生成器(函數(shù))
*使用send()喚醒:除了可以使用next()函數(shù)來喚醒生成器繼續(xù)執(zhí)行外号阿,還可以使用send()函數(shù)來喚醒執(zhí)行
使用send()函數(shù)的一個好處是可以在喚醒的同時向斷點處傳入一個附加數(shù)據(jù)
4、協(xié)程:協(xié)程是python個中另外一種實現(xiàn)多任務的方式
自帶CPU上下文鸳粉;只要在合適的時機扔涧, 我們可以把一個協(xié)程 切換到另一個協(xié)程。 只要這個過程中保存或恢復 CPU上下文那么程序還是可以運行的