使用vuex的state状态对象的5种方式

发布人:admin 发布日期:2018-12-11 浏览次数:619

vuex是一个专门为vue.js设计的状态管理模式,并且也可以使用devtools进行调试。

下面给大家来贴一下我的vuex的结构

下面是store文件夹下的state.js和index.js内容

//state.jsconst state = { headerBgOpacity:0, loginStatus:0, count:66}export default state//index.jsimport Vue from 'vue'import Vuex from 'vuex'import state from './state'import actions from './actions'import getters from './getters'import mutations from './mutations'Vue.use(Vuex)export default new Vuex.Store({  state,  actions,  getters,  mutations })

前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力,群内有大量PDF可供自取,更有干货实战项目视频进群免费领取。

下面开始在test.vue组件当中使用vuex的state状态对象

方式一

<template>  <div class="test">   {{$store.state.count}} <!--第一种方式-->  </div></template><script type="text/ecmascript-6">  export default{  name:'test',   data(){   return{ }   }  }</script><style></style>

方式二

<template>  <div class="test">   {{count}} <!--步骤二-->  </div></template><script type="text/ecmascript-6">  export default{  name:'test',   data(){   return{}   },  computed:{    count(){    return this.$store.state.count; //步骤一    }   }  }</script><style></style>

前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力,群内有大量PDF可供自取,更有干货实战项目视频进群免费领取。

方式三

<template>  <div class="test">   {{count}} <!--步骤三-->  </div></template><script type="text/ecmascript-6">  import {mapState} from 'vuex' //步骤一  export default{  name:'test',   data(){   return{}   },  computed:mapState({     //步骤二,对象方式    count:state => state.count   })  }</script><style></style>

方式四

<template>  <div class="test">   {{count}} <!--步骤三-->  </div></template><script type="text/ecmascript-6">  import {mapState} from 'vuex' //步骤一  export default{  name:'test',   data(){   return{}   },  computed:mapState([    //步骤二,数组方式    "count"   ])  }</script><style></style>

方式五

<template>  <div class="test">   {{count}} <!--步骤三-->  </div></template><script type="text/ecmascript-6">  import {mapState} from 'vuex' //步骤一  export default{  name:'test',   data(){   return{}   },  computed:{    ...mapState([       //步骤二,三个点方式     "count"    ])   }  }</script><style></style>