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 实现的点击复制代码
Mar 24 Javascript
简单的两种Extjs formpanel加载数据的方式
Nov 09 Javascript
JS取request值以及自动执行使用示例
Feb 24 Javascript
使用jQuery判断IE浏览器版本的代码
Jun 14 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
javascript  数组排序与对象排序的实例
Jul 17 Javascript
mongoose更新对象的两种方法示例比较
Dec 19 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
video.js添加自定义组件的方法
Dec 09 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
python3 unicode列表转换为中文的实例
2018/10/26 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
学雷锋先进个人事迹
2014/05/26 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
升职自我推荐信范文
2015/03/25 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript