• <abbr id="chdyf"></abbr>
    <ruby id="chdyf"><acronym id="chdyf"><meter id="chdyf"></meter></acronym></ruby>
    <bdo id="chdyf"></bdo>
    <dfn id="chdyf"><menu id="chdyf"></menu></dfn>
    1. <menuitem id="chdyf"></menuitem><strong id="chdyf"><menu id="chdyf"></menu></strong>

      <rt id="chdyf"><menu id="chdyf"></menu></rt>
      成人小说一区二区三区,伊人精品成人久久综合全集观看,久久HEZYO色综合,中文字幕精品人妻熟女,影音先锋成人网站,我要看免费一级毛片,中国女人做爰A片,中文字幕av久久爽Av

      關(guān)于Vuex的全家桶狀態(tài)管理(二)

      2018-5-28    seo達(dá)人

      如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

      1:mutations觸發(fā)狀態(tài) (同步狀態(tài))

      <template> <p class="hello"> <h1>Hello Vuex</h1> <h5>{{count}}</h5> <p> <button @click="jia">+</button> <button @click="jian">-</button> </p> </p> </template> <script> import {mapState,mapMutations} from 'vuex' export default{
        name:'hello', //寫(xiě)上name的作用是,如果你頁(yè)面報(bào)錯(cuò)了,他會(huì)提示你是那個(gè)頁(yè)面報(bào)的錯(cuò),很實(shí)用 //方法三 computed: mapState([ 'count' ]),
        methods:{
         ...mapMutations([ 'jia', 'jian' ])
        }
       } </script>
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26

      2:getters計(jì)算屬性

      getter不能使用箭頭函數(shù),會(huì)改變this的指向

      在store.js添加getters

       // 計(jì)算 const getters = {
        count(state){ return state.count + 66 }
      } export default new Vuex.Store({
        state,
        mutations,
        getters
      })
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13

      //count的參數(shù)就是上面定義的state對(duì)象 
      //getters中定義的方法名稱(chēng)和組件中使用的時(shí)候一定是一致的,定義的是count方法,使用的時(shí)候也用count,保持一致。 
      組件中使用

      <script> import {mapState,mapMutations,mapGetters} from 'vuex' export default{
        name:'hello',
        computed: {
         ...mapState([ 'count' ]),
         ...mapGetters([ 'count' ])
        },
        methods:{
         ...mapMutations([ 'jia', 'jian' ])
        }
       } </script>
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

      3:actions (異步狀態(tài))

      在store.js添加actions

      import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) // 定義常量 const state = { count: 1 } // mutations用來(lái)改變store狀態(tài) 同步狀態(tài) const mutations = {
        jia(state){
          state.count ++
        },
        jian(state){
          state.count --
        },
      } // 計(jì)算屬性 const getters = {
        count(state){ return state.count + 66 }
      } // 異步狀態(tài) const actions = {
        jiaplus(context){
          context.commit('jia') //調(diào)用mutations下面的方法
          setTimeout(()=>{
            context.commit('jian')
          },2000) alert('我先被執(zhí)行了,然后兩秒后調(diào)用jian的方法') }, jianplus(context){ context.commit('jian') }
      } export default new Vuex.Store({
        state,
        mutations,
        getters,
        actions
      })
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44

      在組件中使用

      <template> <p class="hello"> <h1>Hello Vuex</h1> <h5>{{count}}</h5> <p> <button @click="jia">+</button> <button @click="jian">-</button> </p> <p> <button @click="jiaplus">+plus</button> <button @click="jianplus">-plus</button> </p> </p> </template> <script> import {mapState,mapMutations,mapGetters,mapActions} from 'vuex' export default{
        name:'hello',
        computed: {
         ...mapState([ 'count' ]),
         ...mapGetters([ 'count' ])
        },
        methods:{ // 這里是數(shù)組的方式觸發(fā)方法 ...mapMutations([ 'jia', 'jian' ]), // 換一中方式觸發(fā)方法 用對(duì)象的方式 ...mapActions({
          jiaplus: 'jiaplus',
          jianplus: 'jianplus' })
        }
       } </script> <style scoped> h5{ font-size: 20px; color: red; } </style>
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48

      4:modules 模塊

      適用于非常大的項(xiàng)目,且狀態(tài)很多的情況下使用,便于管理

      修改store.js

      import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const state = { count: 1 } const mutations = {
        jia(state){
          state.count ++
        },
        jian(state){
          state.count --
        },
      } const getters = {
        count(state){ return state.count + 66 }
      } const actions = {
        jiaplus(context){
          context.commit('jia') //調(diào)用mutations下面的方法
          setTimeout(()=>{
            context.commit('jian')
          },2000) alert('我先被執(zhí)行了,然后兩秒后調(diào)用jian的方法') }, jianplus(context){ context.commit('jian') }
      }
      
      //module使用模塊組的方式 moduleA const moduleA = { state, mutations, getters, actions }
      
      // 模塊B moduleB const moduleB = { state: { count:108
        }
      } export default new Vuex.Store({
        modules: {
          a: moduleA,
          b: moduleB,
        }
      })
      藍(lán)藍(lán)設(shè)計(jì)www.wtxcl.cn )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

      日歷

      鏈接

      個(gè)人資料

      存檔