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 相关文章推荐
js图片延迟加载的实现方法及思路
Jul 22 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
jquery.Callbacks的实现详解
Nov 30 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
使用vue构建移动应用实战代码
Aug 02 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
Aug 15 Javascript
js实现简单数字变动效果
Nov 06 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
VScode格式化ESlint方法(最全最好用方法)
Sep 10 Javascript
JS实现躲避粒子小游戏
Jun 18 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
JavaScript延迟加载
2021/03/09 Javascript
js树形控件脚本代码
2008/07/24 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
详解vue 组件注册
2020/11/20 Vue.js
jQuery实现查看图片功能
2020/12/01 jQuery
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python使用插值法画出平滑曲线
2018/12/15 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
香港士多网上超级市场:Ztore
2021/01/09 全球购物
英文版区域经理求职信
2013/10/23 职场文书
司仪主持词两篇
2014/03/22 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
2019新员工心得体会
2019/06/25 职场文书
七年级作文之雪景
2019/11/18 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
Go语言 详解net的tcp服务
2022/04/14 Golang