Vuex
解决不同组件的数据共享,与数据持久化

1.npm install vuex --save
2.新建store.js 并引入vue vuex ,Vue.use(Vuex)
3.state在vuex中用于存储数据
var state = {
  count:1
}
4.mutations里放的是方法,主要用于改变state中的数据
var mutations = {
  incCount(){
    ++state.count;
  }
}
5.实例化vuex.Store
  consta store = new Vuex.Store({
    state,
    mutations
  })
6.export default store;
7.组件A中引入store
import store from '../store.js'
8.注册
mounted(){},
store
9.
通过this.$store.state.count引用属性
通过this.$store.commit.('incCount'))引用方法

10.getters类似于计算属性,改变state里面的count数据的时候,触发getters里的方法,获取新的值
var getters = {
  computedCount : (state)=>{
    return state.count*2
  }
}

通过 this.$store.getters.computedCount调用

11.Action类似于mutation,不同在于Action提交的是mutation,而不是直接改变状态。Action可包含任意异步操作
var actions = {
  incMutationsCount(context){
    context.commit('incCount') /*执行mutations里的incCount方法*/
  }
}
通过this.$store.dispatch('incMutationsCount')调用

  1. import Vue from 'vue';
  2. import Vuex from 'vuex';
  3. Vue.use(Vuex);
  4.  
  5. var state = {
  6. count:
  7. }
  8.  
  9. const mutations = {
  10. run(){
  11. ++state.count;
  12. }
  13. }
  14.  
  15. const store = new Vuex.Store({
  16. state,
  17. mutations
  18. });
  19.  
  20. export default store;
  1. <template>
  2. <div id="app">
  3. <router-link to="/home">Home组件</router-link>
  4. <router-link to="/news">News组件</router-link>
  5. <hr>
  6. <router-view></router-view>
  7. </div>
  8. </template>
  9.  
  10. <script>
  11. export default {
  12. name: 'app',
  13. data () {
  14. return {
  15. msg: 'Welcome to Your Vue.js App'
  16. }
  17. }
  18. }
  19. </script>
  20.  
  21. <style lang="scss">
  22.  
  23. </style>
  1. <template>
  2. <div id="news">
  3. News组件
  4. {{this.$store.state.count}}
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. import store from '../utils/store.js'
  10. export default {
  11. data() {
  12. return{}
  13. },
  14. store
  15. };
  16. </script>
  1. <template>
  2. <div id="home">
  3. Home组件
  4. {{this.$store.state.count}}
  5. <br>
  6. <button @click="addstate()">添加state</button>
  7. </div>
  8. </template>
  9.  
  10. <script>
  11. import store from '../utils/store.js'
  12. export default {
  13. data() {
  14. return{}
  15. },
  16. store,
  17. methods:{
  18. addstate(){
  19. this.$store.commit('run')
  20. }
  21. }
  22. };
  23. </script>

Vue Vuex state mutations的更多相关文章

  1. VUE - vuex state的使用

    1,安装 进入项目目录,执行 vue add vuex 命令 2,会在src的目录下新增store文件夹 3,打开store文件夹下的index.js  ,  给 state 设定一些数据 impor ...

  2. [Nuxt] Update Vuex State with Mutations and MapMutations in Vue.js

    You commit changes to state in Vuex using defined mutations. You can easily access these state mutat ...

  3. 在vuex的mutations中使用vue的小技巧

    问题: 在vuex组件中的mutations属性中的定义的函数,有时会要用到vue这个对象.正常在其他的地方使用是通过this这个变量来获取,但是在mutations定义的函数中this指定的是Vue ...

  4. vue自学入门-5(vuex state)

    vue自学入门-1(Windows下搭建vue环境) vue自学入门-2(vue创建项目) vue自学入门-3(vue第一个例子) vue自学入门-4(vue slot) vue自学入门-5(vuex ...

  5. vue 关于deep watch / computed 监听不到 vuex state 对象变化的的问题

    简而言之,如果vuex state 中是一个对象 {},那么监听就会有问题.先给出解决方案: // 超简易拷贝(如果是深拷贝还多此一举把get/set拷贝进去了,所以用简易拷贝即可) let __VA ...

  6. vue+vuex初入门

    Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 解决问题: 传参的方法对于多层嵌 ...

  7. use vue vuex vue-router, not use webpack

    vue,vuex,vue-router放在一起能做什么?不用webpack之类的打包工具使用他们是否可行?各位道友在初学vue时是否有这样的困惑.因为现代构建前端项目的一般模式是: 安装webapck ...

  8. vue vuex的用法

    1.引入  vue.js    vuex.js 文件 2.创建Store文件 var sSatte=new Vuex.Store({ state:{}, mutations:{}, actions:{ ...

  9. Vuex state 状态浅解

    对于Vuex中的state里面的理解总是有些欠缺,机制似乎理解了.但是还有很多的不足,在这就先浅谈下自己的理解. vuex 机制中,定义了全局Store,在各个vue组件面的this.$store指向 ...

随机推荐

  1. mysql实战优化之六:Order by优化 sql优化、索引优化

    在MySQL中的ORDER BY有两种排序实现方式: 1.利用有序索引获取有序数据 2.文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index.而文件排序显示 ...

  2. Spring启动后获取所有拥有特定注解的Bean,注解的属性值

    最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationCon ...

  3. python中的enumerate函数用于遍历序列中的元素以及它们的下标

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c ...

  4. CommonJS、CMD和AMD规范分别是什么

    CommonJS.CMD和AMD规范分别是什么 Commonjs是用在服务器端的,同步的,如nodejs amd, cmd是用在浏览器端的,异步的,如requirejs和seajs 其中,amd先提出 ...

  5. 爬取豆瓣电影Top250信息

    # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import requests from pyquery import PyQ ...

  6. kafka集群配置和java编写生产者消费者操作例子

    kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...

  7. java成神之——集合框架之队列,栈,集合并发

    集合 队列和双端队列 PriorityQueue Deque BlockingQueue Queue 栈 集合并发 线程锁 线程安全集合 结语 集合 队列和双端队列 PriorityQueue 此队列 ...

  8. javascript原型继承中的两种方法对比

    在实际的项目中,我们通常都是用构造函数来创建一个对象,再将一些常用的方法添加到其原型对象上.最后要么直接实例化该对象,要么将它作为父类,再申明一个对象,继承该父类. 而在继承的时候有两种常用方式,今天 ...

  9. elasticsearch配置小记(转)

    原文  http://bigbo.github.io/pages/2015/04/10/elasticsearch_config/ 基于 elasticsearch 1.4.4 版本.安装方式为RPM ...

  10. 【codevs3990】中国余数定理2

    [题目描述]Skytree神犇最近在研究中国博大精深的数学.这时,Sci蒟蒻前来拜访,于是Skytree给Sci蒟蒻出了一道数学题:给定n个质数,以及k模这些质数的余数.问:在闭区间[a,b]中,有多 ...