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 css在IE和Firefox中区别分析
Feb 18 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
动态加载js、css的实例代码
May 26 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
jquery图片放大镜效果
Jun 23 jQuery
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
Jan 07 Javascript
详解Webpack + ES6 最新环境搭建与配置
Jun 04 Javascript
vue两组件间值传递 $router.push实现方法
May 15 Javascript
JS字符串常用操作方法实例小结
Jun 24 Javascript
Vue Router 实现动态路由和常见问题及解决方法
Mar 06 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 08 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中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
python中二维阵列的变换实例
2014/10/09 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
flask-restful使用总结
2018/12/04 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
八年级语文教学反思
2014/02/11 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
读书之星事迹材料
2014/05/12 职场文书
高中班级口号
2014/06/09 职场文书
车辆委托书范本
2014/10/05 职场文书
捐助倡议书
2015/01/19 职场文书
党员承诺书范文2015
2015/04/27 职场文书
单独二胎证明
2015/06/24 职场文书
创业计划书之美甲店
2019/09/20 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL