vuex操作state对象的实例代码


Posted in Javascript onApril 25, 2018

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>
 <div id="app">
   <h1>{{$store.state.count}}</h1>  
  <router-view/>
 </div>
</template>
<script>
 import store from '@/vuex/store';
export default {
 name: 'App',
 store
}
</script>
<style>
</style>

在component文件夹下Count.vue代码

<template>
 <div>
   <h3>{{this.$store.state.count}}</h3>
 </div>
</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>
 <div>
   <h3>{{this.$store.state.count}}--{{count}}</h3>
  <h4>{{index2}}</h4>
 </div>
</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>

总结

以上所述是小编给大家介绍的vuex操作state对象的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
May 31 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
JQuery遍历DOM节点的方法
Jun 11 Javascript
javaScript实现滚动新闻的方法
Jul 30 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
Aug 21 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
vue中keep-alive组件的入门使用教程
Jun 06 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 Javascript
微信小程序商品详情页的底部弹出框效果
Nov 16 #Javascript
你点的 ES6一些小技巧,请查收
Apr 25 #Javascript
vue 组件使用中的一些细节点
Apr 25 #Javascript
Vue中使用vue-i18插件实现多语言切换功能
Apr 25 #Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
Apr 25 #Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 #Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 #Javascript
You might like
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
node.js的事件机制
2017/02/08 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
Python使用python-docx读写word文档
2019/08/26 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
Python创建临时文件和文件夹
2020/08/05 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
什么是数组名
2012/05/10 面试题
自荐信包含哪些内容
2013/10/30 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
岗位明星事迹材料
2014/05/18 职场文书
话题作文之呼唤
2019/12/18 职场文书
详解python的内存分配机制
2021/05/10 Python