Vuex

1.安装vuex

npm install  -save vuex

2. 引入 创建store文件夹目录

创建 vuex     指挥公共目录    store【'state','actions','mutations','getters','index'】

3.store  -》index.js  (所有的store下的都引入进去进行声明 )

import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import mutations from './mutations'
import actions from './actions'
import getters from './getters' Vue.use(Vuex) /* eslint-disable new-cap */ export default new Vuex.Store({
state,
mutations,
actions,
getters
})

4.在main.js

/*
入口JS
*/
import Vue from 'vue'
import App from './components/App'
import store from './store'
import './base.css'
/* eslint-disable no-new */ new Vue({
el: '#app',
// components:{App},
// template:'<App/>'
render: h => h(App),
store
})

5.在组件儿中使用

  1.this.$store.dispath('addTodo');

  2.import {mapActions} from 'vuex'

   ...mapActions('addTodo')

6.

state     对应的data存放数据对象    state.todos

mutations 操作变更state数据

[CLEAR_ALL_COMPLETED](state){
state.todos = state.todos.filter(todo => (!todo.complete))
}

getters 计算state   计算属性的方法都是i在这里

   totalCount(state){       return state.todos.length    }

actions  触发mutations中的方法     this.$store.dispatch('removeTodo')

/*

组件写  this.$store.dispath('')      调用这里的方法
接受组件通知触发 mutation调用间接状态的方法的对象
*/ import {ADD_TODO, DELETE_TODO, SELECT_ALL_TODOS, CLEAR_ALL_COMPLETED,RECEIVE_TODOS} from './mutation-types'
import storageUtil from '../utils/storageUtils.js'
export default {
addTodo ({commit}, todo) {
commit(ADD_TODO, {todo})
},
deleteTodo({commit},index){
commit(DELETE_TODO,{index})
},
selectAllTodos ({commit}, check) {
commit(SELECT_ALL_TODOS, {check})
},
clearALLCompleted({commit}){
commit(CLEAR_ALL_COMPLETED)
},
reqTodos({commit},todos){
setTimeout(()=>{
// 读取数据
const todos = storageUtil.readTodos()
// 提交数据
commit(RECEIVE_TODOS,todos)
},1000)
}
}

最新文章

  1. java工具类之Graphics
  2. C 语言中 setjmp 和 longjmp
  3. SQL入门语句之运算符
  4. activiti_SpringEnvironment
  5. 关于serialVersionUID的说明
  6. Java I/O流操作(二)---缓冲流[转]
  7. goahead 移植
  8. (一)IE8以下background不起作用
  9. 查看SQL Server 2008的版本及位数
  10. MySQL学习(一) 概述
  11. ubuntu16.04利用deb包安装mysql
  12. hashchange事件
  13. JDK源码阅读之Collection
  14. JavaScript 之arguments、caller 和 callee 介绍
  15. Netty源码分析第2章(NioEventLoop)----&gt;第4节: NioEventLoop线程的启动
  16. CSS3 实现的一个简单的&quot;动态主菜单&quot; 示例[转]
  17. **优化--后端**: 计数缓存counter_cache; rack-mini-profiler(2300&#127775;) ; bullet(5000✨):侦测N+1query
  18. #Leetcode# 922. Sort Array By Parity II
  19. SPSS Clementine 数据挖掘入门1
  20. Reporting Service服务SharePoint集成模式安装配置(9、PowerPivot for SharePoint 安装配置详细)

热门文章

  1. mvc 中Request[&quot;&quot;]与Request.QueryString[&quot;&quot;]
  2. 【Java集合】LinkedList详解前篇
  3. 2.storm的安装
  4. js正则验证表达式
  5. Linux自有服务
  6. 转:如何利用已有的切片文件生成TPK
  7. Qt之QSS(Q_PROPERTY-原始属性)
  8. JSP + JavaBean + Servlet实现MVC设计模式
  9. Angular js ng-bind 和ng-module的区别
  10. 基本类型int强转short时发生了什么?