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 相关文章推荐
JavaScript使用prototype定义对象类型(转)[
Dec 22 Javascript
表单项的name命名为submit、reset引起的问题
Dec 22 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
JavaScript EventEmitter 背后的秘密 完整版
Mar 29 Javascript
CKEditor4配置与开发详细中文说明文档
Oct 08 Javascript
浅析Vue下的components模板使用及应用
Nov 27 Javascript
JS函数进阶之继承用法实例分析
Jan 15 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 Javascript
JavaScript实现移动端拖动元素
Nov 24 Javascript
js基于canvas实现时钟组件
Feb 07 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脚本数据库功能详解(中)
2006/10/09 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
对Python 语音识别框架详解
2018/12/24 Python
python实现图像拼接
2020/03/05 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
韩国现代百货官网:Hmall
2018/03/21 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
幼儿园中班区域活动总结
2014/07/09 职场文书
医学检验专业自荐信
2014/09/18 职场文书
个人优缺点总结
2015/02/28 职场文书
村主任当选感言
2015/08/01 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫