1、什麼是mvc和mvvm
mvc分為三塊 :model view 和controller
mvvm分為三塊:model view 和view-model
在vue中怎麼實現資料的雙向繫結,使用watch觀察者模式監聽物件資料的改變觸發頁面渲染
object.defineprorotype()
什麼是物件導向:物件導向的三大基本特徵:封裝、繼承、多型
2、你用的的vue是哪乙個版本,他和其他版本的區別?
2.多版本的
加入了虛擬dom,還加入了一些新的語法
在js物件和真實dom樹之間存在的乙個虛擬物件,所有的dom樹節點都是根據這個虛擬dom實現生成的
在虛擬dom向真實的dom樹轉換之前會根據diff演算法動態的計算需要更改的標籤,進行替換操作
在生成的時候只需要修改render方法渲染出不同的節點標籤即可
瀏覽器生成dom樹的時候非常消耗資源,因此引入虛擬dom概念
通過一定的演算法優化之後能夠非常快捷的根據資料生成真實的html節點
現在vue和react都是使用的虛擬dom
虛擬dom就是通過乙個物件描述乙個html結構:
通過js 寫乙個迴圈吧節點生成在頁面上
需要修改某乙個節點的值 可以直接修改物件上的屬性
然後呼叫render方法重新渲染頁面
渲染的時候會對虛擬dom中的幾點作比對 只重新渲染
3、vue 的元件生命週期
那張圖
常用的生命週期:
created
moundted:是可以在這個鉤子函式中獲取當前元件的dom元素(this.$el)
4、vue元件傳值
父子元件
父傳子使用props
子傳父使用事件派發
非相關元件
事件匯流排,我們使用乙個空白的vue例項作為乙個橋梁,所有的事件派發和監聽都在此物件上進行vuex
5、vue-router 使用,路由守衛
什麼是巢狀路由?
路由守衛
beforeeach表示每乙個路由跳轉之前執行,我們可以通過它判斷使用者是否登入
路由元標籤 meta
路由傳參 query/params
動態路由
路由跳轉
6、vue專案的上線流程
1.使用腳手架搭建專案
2.寫靜態頁面
3.呼叫伺服器端介面版資料動態化
4.build上線 router-link、程式設計式跳轉
7、vuex
是乙個全域性狀態管理工具,把所有的state資料儲存在一棵單一的狀態樹上
使用mutations實現資料的改變
如果是非同步操作需要dispatch派發乙個action,然後在action中commit乙個mutation改變資料
8、什麼是單頁面應用程式?
spa 是只有乙個html頁面的專案,所有的跳轉和功能控制都在這乙個頁面中進行,單頁面應用程式最怕重新整理
多頁面應用程式,一般傳統方式開發的**都是有多個頁面組成的
9、常見的vue指令都有哪些?計算屬性是什麼?
v-if和v-show有什麼區別?
計算屬性和method有什麼區別?
10、自己有沒有做過vue元件的封裝?需要注意一些什麼?
有,
需要注意什麼:
1.需要保證功能的單一性、不和其他元件產生過多的聯絡
2.通過props屬性實現引數的傳遞
3.通過事件派發向呼叫的元件傳遞資料
4.data必須是乙個function,其返回值為當前元件可用的資料
11、為什麼vue不能在ie8一下的瀏覽器執行?
11、less和sass以及post引數是或者webpack的配置
css預處理語言
postcss是乙個平台框架,通過js來處理css**。在vue腳手架生成的專案中已經包含了postcss的配置
最常見的乙個操作是把px轉為rem
webpack配置
enter
output
loaders:載入器
vue常見面試題
1 vue 雙向繫結原理?vue資料雙向繫結是通過資料 劫持結合發布者訂閱者模式的方式來來實現的。利用了objece.defineproperty 這個方法重新定義了物件獲取屬性值 get 和設定屬性值 set 2 說說vue react angularjs jquery的區別?jquery 與另外...
Vue常見面試題總結
1.vue優點?2.v show 和 v if指令的共同點和不同點?共同點 都能控制元素的顯示和隱藏 不同點 實現本質方法不同,總結 如果要頻繁切換某節點,使用 v show 切換開銷比較小,初始開銷較大 如果不需要頻繁切換某節點使用 v if 初始渲染開銷較小,切換開銷比較大 3.如何讓css只在...
常見面試題
1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...