您好,欢迎访问一九零五行业门户网

怎样使用vuex操作state对象

这次给大家带来怎样使用vuex操作state对象,使用vuex操作state对象的注意事项有哪些,下面就是实战案例,一起来看一下。
vuex是什么?
vuex 是一个专门为 vue.js 应用设计的状态管理架构,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。
vue有五个核心概念,state, getters, mutations, actions, modules。
总结
state => 基本数据
getters => 从基本数据派生的数据
mutations => 提交更改数据的方法,同步!
actions => 像一个装饰器,包裹mutations,使之可以异步。
modules => 模块化vuex
state
state即vuex中的基本数据!
单一状态树
vuex使用单一状态树,即用一个对象就包含了全部的状态数据。state作为构造器选项,定义了所有我们需要的基本状态参数。
在vue组件中获得vuex属性
•我们可以通过vue的computed获得vuex的state,如下:
const store = new vuex.store({   state: {     count:0   } }) const app = new vue({   //..   store,   computed: {     count: function(){       return this.$store.state.count     }   },   //.. })
下面看下vuex操作state对象的实例代码
每当 store.state.count 变化的时候, 都会重新求取计算属性,并且触发更新相关联的 dom。
每一个 vuex 应用的核心就是 store(仓库)。
引用官方文档的两句话描述下vuex:
1,vuex 的状态存储是响应式的。当 vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
2,你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
使用vuex里的状态
1,在根组件中引入store,那么子组件就可以通过this.$store.state.数据名字得到这个全局属性了。
我用的vue-cli创建的项目,app.vue就是根组件
app.vue的代码
<template>  <p id="app">    <h1>{{$store.state.count}}</h1>     <router-view/>  </p> </template> <script>  import store from '@/vuex/store'; export default {  name: 'app',  store } </script> <style> </style>
在component文件夹下count.vue代码
<template>  <p>    <h3>{{this.$store.state.count}}</h3>  </p> </template> <script>    export default {     name:'count',   } </script> <style scoped> </style>
store.js的代码
import vue from 'vue' import vuex from 'vuex' vue.use(vuex); const state = {  count: 1 } export default new vuex.store({  state, })
2,通过mapstate辅助函数得到全局属性
这种方式的好处是直接通过属性名就可以使用得到属性值了。
将component.vue的代码进行改变
<template>  <p>    <h3>{{this.$store.state.count}}--{{count}}</h3>   <h4>{{index2}}</h4>  </p> </template> <script>    import { mapstate,mapmutations,mapgetters } from vuex;   export default {     name:'count',     data:function(){       return {         index:10       }     },     //通过对象展开运算符vuex里的属性可以与组件局部属性混用。     computed:{...mapstate(['count']),       index2() {         return this.index+30;       }       } ,   } </script> <style scoped> </style>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
如何使用vue中filter
怎样使用vue判断dom的class
以上就是怎样使用vuex操作state对象的详细内容。
其它类似信息

推荐信息