<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      關于vuex的使用


       

      Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。

      簡單來說就是一個全局的變量管理,在項目中都是可以用到里面的變量。

       

      vuex的核心

      State 共享狀態(存放全局變量)
      Getter 從 store 中的 state 中派生出一些狀態(變量),即從state中獲取狀態(變量)
      Mutation 更改 Vuex 的 store 中的狀態的唯一方法,通過提交mutation修改狀態,同步操作
      Action 類似于mutation,不同的是,action不能直接修改state的狀態,需要通過提交mutation修改state狀態,支持異步
      Module   模塊,為了方便狀態的管理,將store拆分為多個子模塊(modules),每個子模塊擁有完整的state、getter、mutation、action

       

      vuex的安裝及使用

      一、vuex的安裝

      npm install vuex --save     // 如果安裝了淘寶鏡像,可以使用 cnpm安裝

      二、vuex的使用

        新建store的js,引入vue和vuex

        

       

         在實例中注冊store

        

       

       三、store中變量的定義、管理、派生(getter)

        1、state — 狀態

        在store實例中注冊state并在state中定義變量text,也可以給一個初始值;在組件中使用$store.state.text使用定義的變量

                

       

        2、mutation — 更改 store 中的狀態的唯一方法

        vuex中規定只能通過提交mutation的方式去更改store中的狀態,包括action中的操作,也是通過提交mutation去修改,且mutation中不能包含異步操作

          

        說明:在mutations里聲明了兩個方法,一個是不帶參數更新text,一個是帶參數更新text,在示例文件的methods里,

           通過this.$store.commit('方法名', ‘傳參’) 調用,從而達到修改store的狀態

       

        3、action — 異步更改狀態

          action 可支持異步修改state的狀態,而修改state的唯一方法是通過mutation,那么想要在action里面修改state,則需要提交一個mutation,由mutation去做修改

          

         說明:<1>、在actions里聲明了兩個異步方法,一個是不帶參數更新text,一個是帶參數更新text,在示例文件的methods里,

             通過this.$store.dispatch 調用actions的方法,在actions里執行異步操作,通過commit提交mutation,在mutation中修改store的狀態

            <2>、store.dispatch 的分發傳參時的兩種形式(載荷形式,對象形式),載荷形式:store.dispatch('方法名', '傳參');對象形式:store.dispatch({ type: ‘方法名’,key: value, [ ... ] })

       

         4、getter — store中state的派生狀態

          可以理解為 store 的計算屬性,  更像計算屬性一樣,getter 的返回值會根據它的依賴被緩存起來,且只有當它的依賴值發生了改變才會被重新計算,然后返回結果

           

         說明:通過 getter 拿到的是相當于計算后的值,所以通過對象的方式傳值

           如果需要傳值計算,那么此時相當于是調用getters里面的方法,所以 getter 的值需要是一個方法, 通過雙箭頭函數返回,傳參在后面的箭頭函數,第一個箭頭函數的state是派生的state狀態

       

        5、module

          使用單一狀態樹,應用的所有狀態會集中到一個比較大的對象。當應用變得非常復雜時,store 對象會變得相當臃腫

          Vuex 允許我們將 store 分割成模塊(module),每個模塊擁有自己的 state、mutation、action、getter

           

           

           注:由于 modules 也是一個對象,渲染數據時要帶上對象的key (store.state.module1.名稱)

       

        6、vuex輔助函數

          mapStatemapMutationsmapGettersmapActions

          <1>、mapState

           

       

         <2>、mapMutations

            

       

        <3>、mapGetters

            

       

        <4>、mapActions

             

       

       7、vuex 的命名空間

         默認情況下,模塊內部的 action、mutation 和 getter 是注冊在全局命名空間的,則不同模塊有相同命名的mutations、actions時,不同模塊對同一命名的 mutation 或 action 都會作出響應;

          且模塊過多時,在使用輔助函數mapState、mapGetters、mapMutations、mapActions時很難查詢引用的state、getters、mutations、actions來自于哪個模塊,不便于后期維護

        此時我們可通過添加 namespaced: true 的方式使其成為帶命名空間的模塊(命名空間),當模塊被注冊后,它的所有 getter、action 及 mutation 都會自動根據模塊注冊的路徑調整命名

               

          方法一:                        方法二:

           

         

          說明:當開啟命名空間后,通過輔助函數獲取 store 的值時,若未指定空間名且全局命名空間中沒有該變量,將獲取不到該變量參數

         

       

         

       

      posted @ 2021-04-30 17:09  地yu荒冢  閱讀(250)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产L精品国产亚洲区在线观看| 欧美日本激情| 国产午夜福利小视频合集| 国产精品无码av不卡| 久在线精品视频线观看| 少妇高潮喷水正在播放| 蜜桃av亚洲精品一区二区| 国产区精品视频自产自拍| 免费无码高潮流白浆视频| 毛片无码免费无码播放| 欧美亚洲色综久久精品国产| 国产精品不卡区一区二| 人妻伦理在线一二三区| 国产成人麻豆亚洲综合无码精品| 人人妻人人妻人人片色av| 国产超碰无码最新上传| 国产毛片子一区二区三区| 资兴市| 国产成人久久精品一区二区| 在线免费成人亚洲av| 国产av无码专区亚洲av软件| 欧美成人h亚洲综合在线观看| 蜜桃av一区二区高潮久久精品| 伦伦影院午夜理论片| 精品国产乱码一区二区三区| 日韩精品视频一区二区不卡| 二区中文字幕在线观看| 一卡2卡三卡4卡免费网站| 亚洲色欲在线播放一区| 亚洲精品一区二区在线播| 妺妺窝人体色www看美女| 黄瓜一区二区三区自拍视频| 国产不卡av一区二区| 翘臀少妇被扒开屁股日出水爆乳| 日韩一区二区三区av在线 | 都匀市| 日韩不卡一区二区在线观看| 亚洲高清最新AV网站| 免费AV片在线观看网址| 亚洲成人av一区免费看| 亚洲一区二区精品动漫|