面試中能夠問的問題不少,最近幾年,我也面試,或者視頻面試過不少工做 2-4 年的前端,我通常會抓住他們作的項目,進行更詳細的追問。因此,初中級前端面試的時候,除了掌握基礎知識以外,項目中用到的技術要理清楚,假如你項目中用到的技術,問的時候卻一問三不知,那麼,基本上就會 pass 掉了javascript
面試時也儘可能避免一問一答的這種模式,要觸類旁通,回答問題是最好結合項目,這樣會給面試官一個深入的印象哦!!前端
<div>
{{ data.split('') ? data.split('').reverse().join('') : data.split('' ) }} </div> 複製代碼
var vm = new Vue({
el: '#example', data: { data: 'Hello' }, computed: { // 計算屬性的getter reversedMessage: function () { // `this` 指向 vm 實例 return this.data.split('').reverse().join('') } } }) 複製代碼
watch:{ //須要監聽的值 question(){ } } 複製代碼
計算屬性和監聽器看上去是差很少的,可是仍是有區別vue
計算屬性和監聽屬性都是但願在依賴數據變化的時候,被依賴的數據根據事先設定好的函數發生自動的變換。 watch 一個數據相應多個數據 computed 一個數據受到多個數據的影響 在實現原理上watch和computed是差很少的,vue 的data值在初始化階段都會被掛載上 watcher 觀察者模式,當數據改變的時候先調用watcher觀察者模式,而後調用計算屬性,和監聽屬性。本質上來講沒有多大區別java
v-if:根據表達式的值的真假條件渲染元素。在切換時元素及它的數據綁定 / 組件被銷燬並重建。ios
v-show:根據表達式之真假值,切換元素的 display CSS 屬性。web
v-for:循環指令,基於一個數組或者對象渲染一個列表,vue 2.0 以上必須需配合 key 值 使用。面試
v-bind:動態地綁定一個或多個特性,或一個組件 prop 到表達式。axios
v-on:用於監聽指定元素的 DOM 事件,好比點擊事件。綁定事件監聽器。數組
v-model:實現表單輸入和應用狀態之間的雙向綁定promise
v-pre:跳過這個元素和它的子元素的編譯過程。能夠用來顯示原始
Mustache 標籤。跳過大量沒有指令的節點會加快編譯。
v-once:只渲染元素和組件一次。隨後的從新渲染,元素/組件及其全部的子節點將被視爲靜態內容並跳過。這能夠用於優化更新性能。
v-if 和 v-show 都是動態顯示 DOM 元素。
一、編譯過程: v-if 是 真正 的 條件渲染,由於它會確保在切換過程當中條件塊 內的事件監聽器和子組件適當地被銷燬和重建。v-show 的元素始終會被渲染並 保留在 DOM 中。 v-show 只是簡單地切換元素的 CSS 屬性 display。
二、編譯條件: v-if 是惰性的:若是在初始渲染時條件爲假,則什麼也不作。直 到條件第一次變爲真時,纔會開始渲染條件塊。v-show 無論初始條件是什麼, 元素老是會被渲染,而且只是簡單地基於 CSS 進行切換。
三、性能消耗: v-if 有更高的切換消耗。v-show 有更高的初始渲染消耗。
四、應用場景: v-if 適合運行時條件不多改變時使用。v-show 適合頻繁切換。
經過 v-on 監聽 和emit'觸發 當前實例上的 自定義事件。 示例: 父組件:
<template>
<div class="fatherPageWrap"> <h1>這是父組件</h1> <!-- 引入子組件,v-on 監聽自定義事件 --> <emitChild v-on:emitMethods="fatherMethod"></emitChild> </div> </template> <script type="text/javascript"> import emitChild from '@/page/children/emitChild.vue'; export default{ data () { return {} }, components : { emitChild }, methods : { fatherMethod(params){ alert(JSON.stringify(params)); } } }</script> 子組件: <template> <div class="childPageWrap"> <h1>這是子組件</h1> </div> </template> <script type="text/javascript"> export default{ data () { return {} }, mounted () { //經過 emit 觸發 this.$emit('emitMethods',{"name" : 123}); } }</script> 結果: 子組件 會調用 父組件的 fatherMethod 方法,該而且會 alert 傳遞過去的參 數:{"name":123} 複製代碼
一、Axios 是一個基於 promise 的 HTTP 庫,支持 promise 全部的 API
二、它能夠攔截請求和響應
三、它能夠轉換請求數據和響應數據,並對響應回來的內容自動轉換成 JSON 類 型的數據
四、安全性更高,客戶端支持防護 XSRF