程式設計師跳槽必備神器

陝西優就業發表於2019-12-10

    到了年底,一大批准備跳槽的程式設計師蠢蠢欲動, 陝西優就業小編今天就給大家分享一下大家最需要的東西。現在很多公司都要求vue、react、ng三大主流框架中的一兩個。小編在此總結一下vue常見的面試題,希望對面試的小夥伴有幫助。

  一、Vue的生命週期的理解

  beforeCreate(建立前) 在資料觀測和初始化事件還未開始。

  created(建立後) 完成資料觀測,屬性和方法的運算,初始化事件,$el屬性還沒有顯示出來。

  beforeMount(載入前) 在掛載開始之前被呼叫,相關的render函式首次被呼叫。例項已完成以下的配置:編譯模板,把data裡面的資料和模板生成html。注意此時還沒有掛載html到頁面上。

  mounted(載入後) 在el 被新建立的 vm.$el 替換,並掛載到例項上去之後呼叫。例項已完成以下的配置:用上面編譯好的html內容替換el屬性指向的DOM物件。完成模板中的html渲染到html頁面中。此過程中進行ajax互動。

  beforeUpdate(更新前) 在資料更新之前呼叫,發生在虛擬DOM重新渲染和打補丁之前。可以在該鉤子中進一步地更改狀態,不會觸發附加的重渲染過程。

  d(更新後) 在由於資料更改導致的虛擬DOM重新渲染和打補丁之後呼叫。呼叫時,元件DOM已經更新,所以可以執行依賴於DOM的操作。然而在大多數情況下,應該避免在此期間更改狀態,因為這可能會導致更新無限迴圈。該鉤子在伺服器端渲染期間不被呼叫。

  beforeDestroy(銷燬前) 在例項銷燬之前呼叫。例項仍然完全可用。

  destroyed(銷燬後) 在例項銷燬之後呼叫。呼叫後,所有的事件監聽器會被移除,所有的子例項也會被銷燬。該鉤子在伺服器端渲染期間不被呼叫。

  a、第一次頁面載入會觸發哪幾個鉤子?

  會先後觸發beforeCreate, created, beforeMount, mounted。

  b、DOM 渲染在哪個週期中就已經完成

  DOM 渲染在 mounted 中就已經完成了。

  二、Vue實現資料雙向繫結的原理

  vue實現資料雙向繫結主要是:採用資料劫持結合釋出者-訂閱者模式的方式,透過Object.defineProperty()來劫持各個屬性的setter,getter,在資料變動時釋出訊息給訂閱者,觸發相應監聽回撥。

  當把一個普通 Javascript 物件傳給 Vue 例項來作為它的 data 選項時,Vue 將遍歷它的屬性,用 Object.defineProperty 將它們轉為 getter/setter。使用者看不到 getter/setter,但是在內部它們讓 Vue 追蹤依賴,在屬性被訪問和修改時通知變化。

  vue的資料雙向繫結 將MVVM作為資料繫結的入口,整合Observer,Compile和Watcher三者,透過Observer來監聽自己的model的資料變化,透過Compile來解析編譯模板指令(vue中是用來解析 {{}}),最終利用watcher搭起observer和Compile之間的通訊橋樑,達到資料變化 —>檢視更新;檢視互動變化(input)—>資料model變更雙向繫結效果。

  三、Vue元件間的引數傳遞

  常見傳參方式

  父元件向子元件傳值:

  1)子元件在props中建立一個屬性,用來接收父元件傳過來的值;

  2)在父元件中註冊子元件;

  3)在子元件標籤中新增子元件props中建立的屬性;

  4)把需要傳給子元件的值賦給該屬性;子元件傳給父元件:

  $emit方法傳遞引數。

  四、vue中的作用。

  是 Vue 內建的一個元件,可以使被包含的元件保留狀態,或避免重新渲染。

  五、vue的指令有哪些?

  v-text,v-html, v-once, v-show,v-if, v-for,v-bind,v-model,自定義指令。

  六、v-for中為什麼使用key?

  使用v-for更新已渲染的元素列表時,預設用就地複用策略;列表資料修改的時候,他會根據key值去判斷某個值是否修改,如果修改,則重新渲染這一項,否則複用之前的元素;(因為Virtual DOM 使用Diff演算法實現的原因)。

  七、v-show和v-if指令的共同點和不同點。

  v-show指令是透過修改元素的display的CSS屬性讓其顯示或者隱藏。

  v-if令是直接銷燬和重建DOM達到讓元素顯示和隱藏的效果。

  八、如何讓CSS只在當前元件中起作用

  將當前元件的


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2667646/,如需轉載,請註明出處,否則將追究法律責任。

相關文章