(1)垂直居中的幾種方式
text-align和vertical-align;絕對(duì)定位和transform;絕對(duì)定位和負(fù)外邊距;絕對(duì)定位和margin:auto;flex布局;table-cell布局
(2)列舉幾個(gè)vue生命周期并說明用處
beforeCreate:加loading事件,在加載實(shí)例時(shí)觸發(fā)
created:寫初始化完成時(shí)的事件,如結(jié)束loading事件,異步請(qǐng)求也可以在這里調(diào)用
mounted:掛載元素,獲取DOM節(jié)點(diǎn)
updated:寫對(duì)數(shù)據(jù)統(tǒng)一處理的函數(shù)
beforeDestroy:寫確認(rèn)停止事件的確認(rèn)框
nextTick:更新數(shù)據(jù)后立即操作DOM
(3)組件之間的傳值是怎么實(shí)現(xiàn)的
父--->子,子組件 :[props]='父data'
子--->父(點(diǎn)擊子組件按鈕,調(diào)用父組件方法),
? ? ? ? 子@click='send',methods:send(){ this.$emit('connect',this.msg)}
? ? ? ? ?父 監(jiān)聽這個(gè)$emit事件,@connect = 'say';methods:say(msg){}
同級(jí)組件:空的中間實(shí)例,實(shí)際開發(fā)中使用管理狀態(tài)的vuex
(4)vue路由跳轉(zhuǎn)攜帶參數(shù)query和params有什么不同
query傳參:可以傳遞多個(gè)參數(shù),域名/list?name=aaa&pass=bbb;不需要另外配置路由
params傳參:只能傳一個(gè)參數(shù),域名/list/3;需要配置路由
(5)如何刷新vue組件【參考鏈接https://www.cnblogs.com/yinn/p/9056731.html】
hack方式強(qiáng)制子組件重置到初始狀態(tài)
<component v-if="hackReset"></component>
this.hackReset = false;
this.$nextTick( () = > {
? ? this.hackReset = true
})
(6)es6中新增了什么,列舉幾個(gè)說明
let;const常量;箭頭函數(shù);解構(gòu)賦值;剩余參數(shù)(...arr);promise(異步);Math(.trunc();.sign());Symbol(解決屬性命名的問題);模板字符串(反引號(hào) `${}`,減少很多+)
數(shù)組遍歷(for of)可以break和continue【for(let value of arr){value是數(shù)字類型};for(let index of arr.keys()){數(shù)字類型的索引}】
findIndex(-1表示不存在)
(7)es6中的Set和Map有什么不同
Set去重,解構(gòu)的成員值沒有重復(fù)的,都是唯一的,解構(gòu)的鍵名和鍵值是同一個(gè)值,在Set內(nèi)部?jī)蓚€(gè)NaN是相等的,兩個(gè)對(duì)象總是不相等的。可以用length檢測(cè)
? ? 四個(gè)操作方法: add(value):添加某個(gè)值,返回Set結(jié)構(gòu)本身;delete(value):刪除某個(gè)值,返回一個(gè)布爾值,表示刪除是否成功;has(value)返回一個(gè)布爾值,表示該值是否為Set的成員;clear():清除所有成員,沒有返回值;
? ? set內(nèi)部元素可以遍歷for...of...
Map提供了“值-值”的對(duì)應(yīng),它類似于對(duì)象,也是鍵值對(duì)的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對(duì)象)都可以當(dāng)做鍵。注意,只有對(duì)同一個(gè)對(duì)象的引用,Map結(jié)構(gòu)才將其視為同一個(gè)鍵。這一點(diǎn)要非常小心。
? ??如果Map的鍵是一個(gè)簡(jiǎn)單類型的值(數(shù)字、字符串、布爾值),則只要兩個(gè)值嚴(yán)格相等,Map將其視為一個(gè)鍵,包括0和-0。另外,雖然NaN不嚴(yán)格相等于自身,但Map將其視為同一個(gè)鍵。
? ??實(shí)例屬性和方法:size、set、get、has、delete、clear
????遍歷方法:keys()、values()、entries()、forEach()
(8)js繼承的方式都有哪些【https://www.cnblogs.com/humin/p/4556820.html】
(9)vuex是什么,怎么使用,哪種功能場(chǎng)景使用它
vue框架中的狀態(tài)管理。在main.js中引用store,注入。新建一個(gè)目錄store,內(nèi)容包括state,mutation,action。
使用場(chǎng)景:?jiǎn)雾搼?yīng)用中,組件之間的狀態(tài)。音樂播放,登錄狀態(tài),加入購(gòu)物車
(10)以下js的打印結(jié)果是什么
setTimeout(function(){
console.log(1)
},0);
new Promise(function(a,b){
console.log(2);
for(var i=0;i<10;i++){
i=9 && a ()
}
console.log(3)
}).then(function(){
console.log(4)
});
console.log(5);
答案:23541;因?yàn)閟etTimeout是異步,不管設(shè)置多長(zhǎng)時(shí)間,都是等其他運(yùn)行結(jié)束,它再運(yùn)行