1. 程式人生 > 其它 >vue相關面試筆記

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