zoukankan      html  css  js  c++  java
  • VueX--- actions→mutations or getters→state 四大金刚

    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
    })
    View Code

    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
    })
    View Code

    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))
      }
    View Code

    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)
      }
    }
  • 相关阅读:
    【Spring源码这样读】-再次走近容器Spring IOC 一
    【Spring源码这样读】-下载安装一份Spring源码
    【Spring源码这样读】-认识Spring的基本功能
    【Spring源码这样读】-怎么阅读源码
    RabbitMQ没有延时队列?学会这一招玩转延时队列
    【HDU 3746 Cyclic Nacklace】
    10要点解决IE6兼容性问题
    《遍地风流》- 阿城
    PyCharm2021使用教程 --- 1、PyCharm的下载与安装
    爬虫系列 | 6、详解爬虫中BeautifulSoup4的用法
  • 原文地址:https://www.cnblogs.com/reeber/p/10641887.html
Copyright © 2011-2022 走看看