周日下午,我完成了Vue階段考核,從八月中旬學(xué)習(xí)Vue開始料祠,到現(xiàn)在也有兩個(gè)月了丑瞧。
從最開始看菜鳥教程的Vue2教程液样,看到CLI后開始尋求視頻講解,跟著視頻慢慢學(xué)習(xí),中間斷了三周時(shí)間逗威,回來之后發(fā)現(xiàn)Vue的知識(shí)基本上快忘完了,所以挑了重點(diǎn)的知識(shí)復(fù)習(xí)了一下橄镜,又聽了別人的考核內(nèi)容必指,對Vue知識(shí)有了一個(gè)明確的復(fù)習(xí)方向。然后跟著敲Vue案例株茶,最后完成了Vue作品来涨。國慶期間學(xué)習(xí)了其他內(nèi)容,周日粗略復(fù)習(xí)Vue后完成了考核启盛”钠考核過程中發(fā)現(xiàn)很多問題,基礎(chǔ)知識(shí)掌握有欠缺僵闯,有些名詞沒有聽過卧抗,解釋的也不太清楚。以下是對考核中知識(shí)點(diǎn)的總結(jié):
路由兩種工作模式:
hash模式:指的url尾巴后的#號(hào)以及后面的字符鳖粟。這里的#和css里的#是一個(gè)意思社裆。hash也稱作錨點(diǎn),本身是來做頁面定位的向图,可以是對應(yīng)的id顯示在可視區(qū)域內(nèi)泳秀。#及以后的內(nèi)容就是hash值,hash值不會(huì)帶給服務(wù)器榄攀。
缺點(diǎn):hash本身是用來做頁面定位的嗜傅,如果拿來做路由的話,原來的錨點(diǎn)功能就不能用了檩赢,其次吕嘀,hash傳參是基于url的,如果要傳遞復(fù)雜的數(shù)據(jù)漠畜,會(huì)有體積限制币他。
history模式:路徑上沒有#,地址干凈憔狞,美觀蝴悉。兼容性比hash模式略差
路由器默認(rèn)hash模式,如果使用history模式瘾敢,需要在路由器中添加一個(gè)配置項(xiàng) mode:'history'
路由守衛(wèi)(對路由進(jìn)行權(quán)限控制):
全局守衛(wèi)
router.beforeEach()
router.afterEach()
獨(dú)享守衛(wèi)(某一個(gè)路由所獨(dú)有的守衛(wèi))
beforeRouteEnter()
beforeRouteLeave()
組件內(nèi)守衛(wèi)(寫一些組件里獨(dú)有的邏輯)
beforeEnter:()
組件化和模塊化:
組件化:組件化就是把可復(fù)用的拍冠、獨(dú)立的尿这、基礎(chǔ)的、功能專一的代碼封裝到一個(gè)方法或者代碼片段里庆杜,在未來需要的地方引入射众,用極少的代碼實(shí)現(xiàn)之前相同的功能,避免相同功能代碼的復(fù)寫晃财,提高開發(fā)效率叨橱。組件化屬于縱向分塊,每個(gè)組件就像一個(gè)豎直的線永不相交断盛。
模塊化:模塊化是為了單獨(dú)實(shí)現(xiàn)某一功能模塊進(jìn)行封裝的方法罗洗,一個(gè)模塊里可能擁有n個(gè)基礎(chǔ)組件搭配產(chǎn)生。模塊化屬于橫向分塊钢猛,每個(gè)模塊像一條橫線把n條豎直的線串聯(lián)起來形成一個(gè)整體伙菜。
組件相當(dāng)于庫,模塊相當(dāng)于框架命迈。
腳手架概念:
vue-cli專門為單頁面應(yīng)用快速搭建繁雜的腳手架贩绕。是用于自動(dòng)生成vue.js + webpack 的項(xiàng)目框架。
vuex五大屬性:
1壶愤、state: vuex的基本數(shù)據(jù)淑倾,用來存儲(chǔ)變量;
2公你、getters: 從基本數(shù)據(jù)(state)派生的數(shù)據(jù)踊淳,相當(dāng)于state的計(jì)算屬性假瞬;
3陕靠、mutations: 提交更新數(shù)據(jù)的方法,必須是同步的(如果需要異步使用action)脱茉。每個(gè)mutation 都有一個(gè)字符串的事件類型(type)和一個(gè)回調(diào)函數(shù)(handler)剪芥。
回調(diào)函數(shù)就是我們實(shí)際進(jìn)行狀態(tài)更改的地方,并且它會(huì)接受 state作為第一個(gè)參數(shù)琴许,提交載荷作為第二個(gè)參數(shù)税肪。
4、action: 和mutation的功能大致相同榜田,不同之處在于 ①Action提交的是mutation益兄,而不是直接變更狀態(tài),②Action可以包含任意異步操作箭券。
5净捅、modules: 模塊化vuex,可以讓每一個(gè)模塊擁有自己的 state辩块、mutation蛔六、action荆永、 getters,使得結(jié)構(gòu)非常清晰国章,方便管理具钥。
$router和$route的區(qū)別:
$router是全局路由的實(shí)例對象,是router構(gòu)造方法的實(shí)例液兽。
$route表示當(dāng)前的路由對象骂删,里包含了當(dāng)前URL解析的信息。
routes指創(chuàng)建vue-router路由實(shí)例的配置項(xiàng)四啰,用來配置多個(gè)route路由對象