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 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
Jul 29 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
解析JavaScript中的不可见数据类型
Dec 02 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
动态加载脚本提升javascript性能
Feb 24 Javascript
Iframe 自动适应页面的高度示例代码
Feb 26 Javascript
Javascript基础教程之关键字和保留字汇总
Jan 18 Javascript
移动Web中图片自适应的两种JavaScript解决方法
Jun 18 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
Vue 实现从小到大的横向滑动效果详解
Oct 16 Javascript
vue实现图片按比例缩放问题操作
Aug 11 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
实用函数9
2007/11/08 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
vue 子组件和父组件传值的示例
2020/09/11 Javascript
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
python同步windows和linux文件
2019/08/29 Python
python数据分析:关键字提取方式
2020/02/24 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
党支部公开承诺践诺书
2014/03/28 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
贺卡寄语大全
2014/04/11 职场文书
组工干部对照检查材料
2014/08/25 职场文书
开天辟地观后感
2015/06/09 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
CSS的calc函数用法小结
2022/06/25 HTML / CSS