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 页面坐标相关知识整理
Jan 09 Javascript
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
javascript工具库代码
Mar 29 Javascript
jquerymobile局部渲染的各种刷新方法小结
Mar 05 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
May 09 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
js实现无缝轮播图
Mar 09 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
javascript实现一款好看的秒表计时器
Sep 05 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
如何使用Strace调试工具
2013/06/03 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
Django学习教程之静态文件的调用详解
2018/05/08 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
妇女干部培训方案
2014/05/12 职场文书
文明社区申报材料
2014/08/21 职场文书
与美同行演讲稿
2014/09/13 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP