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 相关文章推荐
jQuery中用dom操作替代正则表达式
Dec 29 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
基于Jquery easyui 选中特定的tab
Nov 17 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
Aug 16 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
js实现年月日表单三级联动
Apr 17 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
使用cropper.js裁剪头像的实例代码
Sep 29 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
vue自定义正在加载动画的例子
Nov 14 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 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
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
input框中的name和id的区别
2016/11/16 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
python抓取网页中的图片示例
2014/02/28 Python
Python实现股市信息下载的方法
2015/06/15 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
利用Python实现kNN算法的代码
2019/08/16 Python
django 实现简单的插入视频
2020/04/07 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
文艺晚会主持词
2014/03/24 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
青岛导游词
2015/02/12 职场文书
难以忽视的真相观后感
2015/06/05 职场文书