第四天
1泌绣、詳述組建通信钮追?
答:從上到下--父?jìng)髯?/p>
在父組件的組件標(biāo)簽上通過v-bond綁定要傳遞的數(shù)據(jù),然后在子組件內(nèi)部通過props接收
// 父組件<select-list :dataList="dataArr" @parentReceive="changeVal"/>// 子組件props: ['dataList']? ?
從下到上--子傳父
在父組件的子組件標(biāo)簽上通過@自定義事件名稱監(jiān)聽阿迈,然后通過回調(diào)函數(shù)去處理響應(yīng)的邏輯
// 父組件 <template>
<select-list :dataList="dataArr" @parentReceive="changeVal"/>
</template>
<script>
changeVal (val) {
? ? ? console.log(`我是子組件傳遞過來的數(shù)據(jù)${val}`)
? ? }?
</script>
在子組件中定義方法元媚,然后在方法里面通過 this.$emit 進(jìn)行傳遞($emit有兩個(gè)參數(shù)(自定義事件名稱,要傳遞的數(shù)據(jù)))苗沧;
// select-list組件 - 子組件selectVal (val) {
? ? ? // 第一步? ? ? this.$emit('parentReceive', val) // 第一個(gè)參數(shù):自定義事件名稱刊棕;第二個(gè)參數(shù)要傳遞的數(shù)據(jù)}
2、keep-alive組件的作用待逞?
答:keep-alive是Vue的內(nèi)置組件甥角,能在組件切換過程中將狀態(tài)保留在內(nèi)存中,防止重復(fù)渲染DOM识樱,
兩個(gè)作用:include:字符串或者正則表達(dá)式嗤无。只有匹配的組件會(huì)被緩存
exclude:字符串或正則表達(dá)式震束。任何匹配的組件都不會(huì)被緩存。
3当犯、單頁面應(yīng)用和多頁面應(yīng)用區(qū)別及優(yōu)缺點(diǎn)垢村?
答:?jiǎn)雾撁鎽?yīng)用(SPA),通俗一點(diǎn)說就是指只有一個(gè)主頁面的應(yīng)用嚎卫,瀏覽器一開始要加載所有必須 的 html, js, css嘉栓。所有的頁面內(nèi)容都包含在這個(gè)所 ? 謂的主頁面中。但在寫的時(shí)候拓诸,還是會(huì)分開寫(頁面片段)侵佃,然后在交互的時(shí)候由路由程序動(dòng)態(tài)載入,單頁面的頁面跳轉(zhuǎn)恰响,僅刷新局部資源趣钱。多應(yīng)用于pc端。
多頁面(MPA)胚宦,就是指一個(gè)應(yīng)用中有多個(gè)頁面首有,頁面跳轉(zhuǎn)時(shí)是整頁刷新
單頁面的優(yōu)點(diǎn):
? ? ? ? ?1.用戶的體驗(yàn)好,快枢劝,內(nèi)容的改變不需要重新加載整個(gè)頁面井联,由于這點(diǎn),SPA它對(duì)服務(wù)器的壓力小
? ? ? ? ?2前后端分離
? ? ? ? ?3.頁面效果比較炫酷
?單頁面的缺點(diǎn):
? ? ? ? 1.不利于seo優(yōu)化
? ? ? ? ?2.導(dǎo)航不可用
? ? ? ? ?3.初次加載時(shí)耗時(shí)多
? ? ? ? ?4.頁面的復(fù)雜程度提高了很多
多頁面開發(fā)的優(yōu)缺點(diǎn)您旁;
優(yōu)點(diǎn):多個(gè)頁面之間跳轉(zhuǎn)烙常,用戶可以清晰的了解整個(gè)網(wǎng)站的內(nèi)容構(gòu)成;頁面結(jié)構(gòu)的分布也不會(huì)很擁擠鹤盒;實(shí)現(xiàn)簡(jiǎn)單蚕脏,開發(fā)成本低;適用于對(duì)搜索引擎支持較高侦锯,頁面跳轉(zhuǎn)較少驼鞭,數(shù)據(jù)傳遞較少的項(xiàng)目中開發(fā)。
缺點(diǎn):頁面跳轉(zhuǎn)時(shí)尺碰,要重新執(zhí)行css挣棕,js等文件,頁面片段之間跳轉(zhuǎn)較慢亲桥,需要用到頁面跨頁面?zhèn)髦档膸追N方法洛心;實(shí)現(xiàn)轉(zhuǎn)場(chǎng)動(dòng)畫比較困難。維護(hù)成本高题篷。
4词身、什么是計(jì)算屬性?什么情況適用番枚?
答:computed 是vue實(shí)例中的計(jì)算屬性
computed是實(shí)時(shí)響應(yīng)的法严,要根據(jù)data里一個(gè)值隨時(shí)變化做出一些處理時(shí)璧瞬,就需要用conputed去實(shí)時(shí)計(jì)算
當(dāng)我們需要一個(gè)值或者一個(gè)數(shù)據(jù),而這個(gè)數(shù)據(jù)需要通過一些邏輯運(yùn)算才能得到的時(shí)候渐夸,我們更希望將它放在計(jì)算屬性內(nèi)嗤锉,這樣的話我們可以將整個(gè)項(xiàng)目對(duì)于數(shù)據(jù)的復(fù)雜運(yùn)算邏輯全部集中管理在計(jì)算屬性內(nèi)
5、computed墓塌、methods的區(qū)別瘟忱?
答:?computed計(jì)算屬性的方式在用屬性時(shí)不用加(),而methods方式在使用時(shí)要像方法一樣去用,必須加()
?computed是基于它的依賴緩存苫幢,只有相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新取值访诱。
?methods在重新渲染的時(shí)候,函數(shù)總會(huì)重新調(diào)用執(zhí)行韩肝。