1.節(jié)流和防抖的區(qū)別
防抖:在一定的時間內(nèi)觸發(fā)一次
節(jié)流:觸發(fā)最后一次
頁面回流和重繪固蚤;
2.v-show? display none/block 改變css肮塞,頻繁操作節(jié)省開銷
v-if 控制展示和不展示的,對dom的操作涮拗,用于切換不頻繁的場景
3.vue傳值方式有哪幾種
(1)props:父給子傳值
(2)父組件通過$refs獲取子組件的數(shù)據(jù)和方法镀虐,子組件給父組件傳值轴总;
(3)廣播傳值,父子組件氧吐、兄弟組件間進行傳值讹蘑;vueEvents.js? eventbus??事件總線跨越多個層級,
//發(fā)送廣播
vueEvents.$emit('notifyToNew',this.homeMsg+numbery);
//接收廣播
vueEvents.$on("notifyToNew",function(data_P){
? ? ? ? ? ? //注意this的作用域
? ? ? ? ? console.log('廣播傳過來的值是'+data_P);
? ? ? ? ? _this.receive = data_P;
? ? })
(4)localstorage本地緩存
存:localStorage.setItem('tolist',JSON.stringify(this.tolist));
雀笨场:vartolist=JSON.parse(localStorage.getItem('tolist'));
(5)vuex
state:存儲數(shù)據(jù)
mutations:(同步)定義方法衔肢,方法的作用是修改state中的數(shù)據(jù)
action:(異步)Action 提交的是 mutation,而不是直接變更狀態(tài)豁翎。
getter:從基本數(shù)據(jù)(state)派生的數(shù)據(jù)角骤,相當于state的計算屬性。
modules:模塊化vuex,可以讓每一個模塊擁有自己的state邦尊、mutation背桐、action、getters,使得結(jié)構(gòu)非常清晰蝉揍,方便管理链峭。
使用下面這兩種方法存儲數(shù)據(jù):
dispatch:異步操作,寫法: this.$store.dispatch('action方法名',值)
commit:同步操作又沾,寫法:this.$store.commit('mutations方法名',值)
項目結(jié)構(gòu):
https://www.shangmayuan.com/a/e3ac0302b11d42228252c043.html
(6)路由傳值
(1).父組件push使用this.$router.push
(2).在子組件中獲取參數(shù)的時候是this.$route.params
4.封裝過vue的組件或者插件嗎弊仪?
slot插槽==》用于公共組件不同的部分
5.vue雙向綁定原理 http://www.reibang.com/p/e7ebb1500613
?model => view 以及view => model 的雙向綁定。
6.axios的二次封裝
404等錯誤做攔截統(tǒng)一處理
token放入header
7.路由守衛(wèi)
判斷權(quán)限杖刷,登錄界面beforeeach去做的
8.移動端怎么處理跨域問題
9.小程序中冒泡事件怎么解決
bindtap
catchtap可以解決冒泡事件励饵,在子組件里添加該事件則父組件就不會接受到該事件。
10.小程序登錄的時候滑燃,正則表達式判斷一下手機號格式
11.vue項目對webpack做過哪些配置役听?
12.前端項目vue的優(yōu)化方案?
(1)使用計算屬性:computed
計算屬性的最大特點是它可以被緩存表窘,只要它的依賴不被改變就不會被重新求值典予,再次訪問會直接拿到緩存的值在做一些復(fù)雜計算時,可以極大提升性能乐严。
(2)使用函數(shù)式組件
參考官網(wǎng):https://cn.vuejs.org/v2/guide/render-function.html#%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BB%84%E4%BB%B6
函數(shù)式組件是無狀態(tài)的瘤袖,無實例的,在初始化時不需要初始化狀態(tài)麦备,不需要創(chuàng)建實例孽椰,也不需要去處理生命周期等,相比有狀態(tài)組件凛篙,會更加輕量黍匾,同時性能也更好。
(3)結(jié)合場景使用v-show和v-if
v-show是通過切換元素的display屬性來控制的呛梆,和v-if相比不需要在patch階段創(chuàng)建/移除節(jié)點锐涯,只是根據(jù)v-show上綁定的值來控制dom元素的style.display屬性,在頻繁切換的場景下可以節(jié)省很多性能填物。
如果初始值是false纹腌,v-if不會創(chuàng)建隱藏的節(jié)點,但是v-show會創(chuàng)建滞磺,造成了性能的浪費升薯。
所以,v-if的優(yōu)勢體現(xiàn)在初始化時击困,v-show體現(xiàn)在更新時涎劈。
(4)keep-alive
在動態(tài)組件的場景下广凸,由多個組件來回切換,用keep-alive作緩存蛛枚,它的作用是將它包裹的組件在第一次渲染后就緩存起來谅海,下次需要的時候就直接從緩存里讀取,避免了不必要的性能浪費蹦浦。
動態(tài)組件:
<template>
? <div>
? ? <keep-alive>
? ? ? ? <component :is="current" />
? ?</keep-alive>
? </div>
</template>
(5)避免v-for和v-if同時使用
https://cn.vuejs.org/v2/style-guide/#%E9%81%BF%E5%85%8D-v-if-%E5%92%8C-v-for-%E7%94%A8%E5%9C%A8%E4%B8%80%E8%B5%B7%E5%BF%85%E8%A6%81
(6)
13.js的原型鏈
proptype-object
14.閉包
15.canvas
16.echarts
17.移動端適配?
rem布局
html的fontsize怎么設(shè)置扭吁??
先計算屏幕寬度/7.5 (移動端的圖一般都是750px)
18.如何實現(xiàn)一個元素在父元素中絕對居中?
水平 盲镶、垂直居中
水平居中?margin: 0 auto實現(xiàn)水平居中
(1)display:flex 彈性盒模型
設(shè)置父元素(這里是指body)的display的值為flex即可侥袜。具體代碼如下,對代碼不做過多的解釋徒河,如果想了解彈性布局的可以看阮一峰老師的博客http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html:
display: flex; align-items: center;/*定義body的元素垂直居中*/ justify-content: center;/*定義body的里的元素水平居中*/
(2)
19. 和后臺交互是怎么封裝的系馆?
對錯誤碼和請求頭header做處理? 比如header上綁定請求頭顽照。
20.vue和jquery的區(qū)別?
jquery使用選擇器選擇dom
vue使用虛擬dom闽寡,對象和操作dom分離開代兵,相對于jquery性能消耗低。
21.localstorage,sessionstorage,cookiestorage
localstorage 持久性好爷狈,關(guān)閉頁面后還存在
sessionstorage 基于會話植影,會話結(jié)束后就會結(jié)束
cookiestorage容量小,
22.動態(tài)路由
addroutes動態(tài)路由涎永,聰前端配置權(quán)限思币,后端獲取數(shù)據(jù)配置路由。
23.文件上傳羡微,大文件怎么處理谷饿?
24.excel導(dǎo)出??
前端的插件?
25.怎么理解面向?qū)ο箝_發(fā)vue和函數(shù)式編程react妈倔?
26.動態(tài)表單
前端通過拖拽形成json數(shù)據(jù)發(fā)送給后端博投,根據(jù)后端返回的數(shù)據(jù)渲染前端表單數(shù)據(jù)
json數(shù)據(jù)里有個type,比如渲染成input形成輸入類型表單
27.typescript盯蝴?毅哗?
28.怎么處理兩個異步請求?
promise.then
ES7 await
29.vue事件修飾符
stop
prevent??
30?v-router location.href跳轉(zhuǎn)的區(qū)別
location.href跳轉(zhuǎn) 會刷新頁面捧挺。
31.es6模版組件庫
32.如何阻止冒泡事件虑绵?stop.
還有其他vue事件的修飾符 prevent
阻止默認事件
33.頁面加載過慢的原因
34.vue watch 和computed使用方式區(qū)別
35.MVVM框架和適用場景
36.scss?
37.回流和重繪
38.清除浮動的方式
clear
39.添加點擊事件闽烙,同一個元素添加兩個點擊事件
window.
40.vue router路由模式
history保存路由組件到瀏覽器 keep-alive 翅睛,提高用戶體驗度,看是否需要重新加載
hash
41.監(jiān)聽路由參數(shù)的變化
42.js對數(shù)組的操作方法
find filter foreach length map 取出某些數(shù)據(jù)
some查找某一行
includes concat set去重
數(shù)組尾部插入數(shù)據(jù)的方法
43.false&&false = false
44.在js中如何控制一段函數(shù)順序執(zhí)行
await 解決回調(diào)地獄
45.什么是樣式穿透?
/deep/ 都是深度選擇器
46.假如頁面有個圖標不顯示了宏所,如何分析問題酥艳?
console控制臺報錯
css未給高度和寬度
47.以逗號作分割的字符串分隔為 數(shù)組?
split
48.less和scss的區(qū)別
49.怎么理解js的單線程
websocket是雙向爬骤,多次的
50.操作一個字符串的方法
51.如何配置ios的齊劉海充石,填滿?
flex:1