vue特寫面試題

1.關於Vuexvue

五大核心:vue-router

state => 基本數據vuex

getters => 從基本數據派生的數據npm

mutations => 提交更改數據的方法,同步!緩存

actions => 像一個裝飾器,包裹mutations,使之能夠異步。app

modules [ˈmɒdjuːlz] => 模塊化Vuex異步

原理:ide

經過官方文檔咱們知道,每個vue插件都須要有一個公開的install方法,模塊化

vuex也不例外。其代碼比較簡單,調用了一下applyMixin方法,函數

該方法主要做用就是在全部組件的beforeCreate生命週期注入了設置this.$store這樣一個對象,

由於比較簡單,這裏再也不詳細介紹代碼了,你們本身讀一讀編能很容易理解。

使用:

1.利用npm包管理工具,進行安裝 vuex

2.新建一個store文件夾(這個不是必須的),並在文件夾下新建store.js文件,文件中引入咱們的vue和vuex

3.使用咱們vuex,引入以後用Vue.use進行引用

4.在main.js 中引入新建的vuex文件

5.再而後 , 在實例化 Vue對象時加入 store 對象

場景有:單頁應用中,組件之間的狀態、音樂播放、登陸狀態、加入購物車

2. vue生命週期?

從開始建立、初始化數據、編譯模板、掛載Dom、--渲染、更新---渲染、卸載等一系列過程 就是生命週期

beforeCreate:組件實例被建立之初

created:組件實例化,真實Dom尚未生成,$el還不可用

beforemount:在掛載前被調用,相關的render函數首次被調用

mounted:el被新建立的vm.$el替換

beforeUpdate:組件數據更新以前調用、虛擬Dom打補丁以前

Updated:組件數據更新

activited:keep-alive專屬,組件被銷燬時調用

deadactivated:keep-alive專屬,組件被銷燬時調用

beforeDestory:組件銷燬前調用

desoryed:組件銷燬後調用

3.異步請求適合在哪一個生命週期調用

官方給出的是mounted,可是也能夠在created

4.關於keep-alive組件?

keep-alive解決「頁面緩存」需求(好比跳轉到詳情頁回來時列表頁滾動條的深度依舊是原來的位置)

vue-router不保存切換的狀態,它進行push或者replace時,舊組件會被銷燬,新組件會被創建

走一遍完整的生命週期

keep-alive是個抽象組件(功能型組件)實際上不會被渲染在Dom樹中,他的做用是內存中緩存組件

緩存一般出如今頁面切換時,因此常和router-view一塊兒出現

	

5. vue組件通訊?

1.props自上而下傳遞、$emit+v-on:向上傳遞

2.event.bus:經過bus進行信息的發佈與訂閱

bus.$emit("change",this.msg)

bus.$on("change",data=>{ this.info=data })

3.vuex:對全局資源進行管理

4.provide/inject:容許一個組件向全部組件注入依賴