博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vuex里面的store架构
阅读量:7101 次
发布时间:2019-06-28

本文共 1428 字,大约阅读时间需要 4 分钟。

将store文件夹分为四个文件夹,分别是actions,getters,mutations,state。

action:和mutatation功能是类似的,都是修改state里面的数据,区别是action用于异步修改

getter:后端传过来的数据,如果需要做一些处理就在getter里面写。

mutations:用于处理同步数据修改

state:存放后端传过来的原生数据。

父组件通过调用action对store里面数据进行了处理,他的子组件只要调用getter就可以获取到父组件处理后的数据

如下是文件结构:

这里我们演示一个小栗子:

state.js

export default{  count: 0,  firstName: 'zha',  lastName: 'lu'}

getter.js:拼接两个字符串

// 和computer一样,都是对后台返回的数据做处理,只是这个可以应用多个页面

export default {  fullName (state) {  const name = state.firstName + state.lastName  return name  }}

mutations.js 执行函数updateCount

// 所有数据的修改都尽量放在mutations,将mutation写成一个对象,它同步操作,不能有异步的代码在里面

export default{  // 只能有两个参数  updateCount (state, num) {  state.count = num  }}

actions.js 每隔一段时间提交updateCount

// 和mutations差不多,区别是是action可以存放异步的代码

export default {    updateCountAsync (store, data) {    setTimeout(() => (    store.commit('updateCount', data.num)    ), data.time)    }}

store.js:上面几个都需要在这里进行注册

import Vuex from 'vuex'import defaultState from './state/state.js'import mutations from './mutations/mutations'import getters from './getters/getters.js'import actions from './actions/actions.js'// 通过函数,返回一个storeexport default () => {    return new Vuex.Store({        state: defaultState,        mutations,        getters,        actions    })}

App.vue

 

转载于:https://www.cnblogs.com/hdff/p/10238222.html

你可能感兴趣的文章
HTML(五)选择器--伪类选择器
查看>>
Postgresql pg_dump
查看>>
ebtables
查看>>
Bulk Load-HBase数据导入最佳实践
查看>>
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
查看>>
ResultSet转成java类对象
查看>>
拟人拟物法求解不等圆Packing问题
查看>>
斐波那契堆
查看>>
HTML5 DragAPI
查看>>
VC设置程序热键
查看>>
LeetCode-96-Unique Binary Search Trees
查看>>
C++实现多线程类Thread
查看>>
Mac iOS 模拟器录制屏幕生成Gif
查看>>
python练习题
查看>>
关于SDE的版本问题总结
查看>>
别让CDN的回源把你的服务器拖垮,采用正确的回源策略
查看>>
Spring AOP 本质(4)
查看>>
Java Swing 树状组件JTree的使用方法(转)
查看>>
Code digest
查看>>
关于java堆内存溢出的几种情况(转)
查看>>