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:容許一個組件向全部組件注入依賴