vue相關面試筆記
1.vue簡介,vue是一個構建使用者介面的框架。是一個輕量級mvv框架,和angular一樣是所謂的雙向資料繫結,資料驅動和元件化的前端開發,通過簡單的api
實現響應式的資料繫結和組合試圖元件,容易上手,小巧。
2.安裝vue-devtools外掛,便於在chrome中除錯vue,配置是否允許vue-devtools檢查程式碼,方便除錯,生產環境設定為false,vue.config.devtools=false;
vue.configductionTip=false;阻止啟動生產訊息。
3.常用指令。
v-model 雙向資料繫結,一般用於表單元素。
v-for 對陣列或物件進行迴圈操作,使用是v-for 不是v-repeat
v-on 用來繫結時間,用法:v-on :時間=‘函式’
v-show/v-if 用來顯示或隱藏元素,v-show 是通過display實現,v-if 是每次刪除後在建立
4.事件和屬性
v-on:click=" 簡寫 @click=""
$event 事件物件,裡面包括事件相關資訊,如事件源,時間型別,偏移量等
事件冒泡,原生js方式,依賴於事件物件,vue方式,不依賴於事件物件,@click.stop 來阻止事件冒泡;
鍵盤事件:@keydown.13 或keydown.enter
事件修飾符 .stop 呼叫event.stopPropagation();
v-bind 用於屬性繫結,用法 v-bind:屬性=“” 舉例 v-bind:src="" 簡寫 :src=""
5。模板
vue.js 使用基於html的模板語法,將dom繫結到vue例項中的資料模板就是{{}} 用來進行繫結資料顯示在頁面中
雙向繫結 v-model
單項繫結 {{}} 可能會出現閃爍問題, 也可以使用v-text v-html
其他指令 v-once 資料繫結一次 v-pre 不變異,直接原樣顯示
6.過濾器
用來過濾模型資料,在顯示之前進行資料對的處理和篩選
語法: {{data | filter(引數) |filter(引數)}}
內建過濾器,2.0之後都刪掉,如果使用可以藉助第三方庫 如lodash data-fns 日期格式化 accounting.js 貨幣格式化以及自定義
7.傳送ajax請求
vue本身不支援傳送ajax請求,需要使用vue-resourc axios等外掛實現,建議使用axios
axios是一個基於promise的http請求客戶端,用來發送請求
基本用法:
axios.get(url[,options]); 傳參方式,url或者params傳參
axios.post(url,data,[options]);
注意:axios預設傳送資料時,資料格式是request payload,並非我們床用的form data格式,所以引數必須要以鍵值對像是傳遞
,不能以json形式傳參
傳參的方式: 自己拼接鍵值對,使用transformrequst 在請求傳送前將請求資料進行轉換,或者使用qs模組進行轉換
axios不支援跨域請求,可以使用vue-resource 傳送跨域請求。
跨域傳送請求: this.$http.get(url,[options]); this.$http.post(url,[options]);
8.vue生命週期
vue例項從建立到銷燬過程成為生命週期
9。計算屬性
計算屬性也是用來儲存資料,具有這倆個特點:資料可以進行邏輯處理操作,對計算屬性中的資料進行監視。
10.vue例項屬性和方法
屬性 vm.$el vm.$data vm.$options vm.$refs
方法 vm.$mount() vm.$destroy vm.$nextTick(callback) vm.$set(object,key,vlaue) vm.$delete(object,key) vm.$watch(data,callback)
11,自定義指令
自定義全域性指令 vue.directive (指令id,定義物件)
12.過度(動畫)
vue在插入更新或一處dom時,提供多種不同方式應用過程,本質還是使用css動畫,
基本用法: 使用transition元件,將要執行動畫的元素保函在改元件內
結合第三方動畫庫 animater.css 一起使用
顯示內容
13.元件
元件是vue最強大的功能之一,元件可狂戰html元素,封裝重用程式碼,元件是自定義元素物件。
定義元件方式,a>先建立元件構造器,然後由元件構造器建立元件。b>直接建立
引用模板講元件內容放在模板中引用,元件中資料data;function 和vue例項儲存資料不同
componect :is="" 元件,多個元件使用同一個掛的點,動態切換,
keep-alive 快取元件,避免從新建立,效率比較高
使用方法
資料傳遞:父子元件,在一個元件內部又定義了另一個元件,稱為父子元件。
子元件只能在付元件中使用,預設情況下,子元件不能訪問付元件資料。每個元件的作用域是獨立的。
元件間資料的通訊:在呼叫元件時,繫結想要獲取的付元件的資料,在子元件內部,使用props選項來生命獲取
的資料,接收來自付元件的資料。例子:props:['msg'] props可以是陣列,也可以是物件props:{} 允許配置高階設計比如型別判斷
資料的校驗,設定預設值 props:{messge:String,age:Number,name:{type:String,rquired:true,default:19,validator:function(){}}},物件做陣列的預設值,
物件必須使用函式返回。
元件中的資料有三種形式:data props computed
付元件訪問子元件資料方式:
a.在子元件中使用vm.$emit(事件名,資料) 出發一個自定義事件,事件名自定義
b.付元件在使用子元件的地方監聽子元件出發事件,並在付元件中定義方法,用來獲取資料
單項資料流:
props是單項繫結的,當付元件的屬性變化時,將傳導給子元件,但是不會反過來,而且不允許子元件直接
修改付元件中的資料
解決方案: a.如果子元件享把他作為區域性資料來使用,可以將資料存入另一個變數在操作
b.如果子元件想修改資料並同步付元件,使用.sync 2.3開始支援,或者將付元件資料包裝成udixiang,
然後在子元件中修改物件的屬性。
非父子元件間通訊:
可以通過一個空的vue例項來作為中央事件匯流排,用他來出發事件或監控事件
var Event=new Vue(); 空物件
Event.$emit(事件名,資料); 傳送資料
Event.$on(事件名,data=>{}) 監聽接收資料
slot內容分發:
用來獲取元件中的元內容,就是元件標籤中的內容;
獲得指定標籤內容可以給標籤定義 slot="s1" 獲取
14.vue-router 路由
使用vue.js 開發spa 單頁面應用,根絕不同url地址,顯示不同內容,但實現在統一頁面紅,稱單頁面應用。
bower info vue-router cnpm install vue-router -S