博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vuex状态管理
阅读量:5107 次
发布时间:2019-06-13

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

一、安装vuex(npm i vuex),创建store.js

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

二、在main.js引入store.js,注册

import Vue from 'vue'import App from './App.vue'import router from './router'import store from './store'new Vue({  router,  store,  render: h => h(App)}).$mount('#app')

三、state的用法

state.js

const state = {    appName: 'admin'}export default state

1.直接获取store的state

computed: {    appName () {      return this.$store.state.appName;    }  }

2.在mapState中定义别名

computed: {    ...mapState({      appName: state => state.appName    })  }

3.从mapSate获取

computed: {    ...mapState(['appName'])  }

四、getter 获取计算后的 state

getters.js

const getters = {    appNameWithVersion (state) {        return `${state.appName}v2.0`    }}export default getters

1.从store里获取getter

computed: {    appNameWithVersion () {      return this.$store.getters.appNameWithVersion;    }  }

2.从mapGetters中获取

computed: {    ...mapGetters(['appNameWithVersion'])  }

五、mutations修改state

mutations.js

const mutations = {    setAppName (state, params) {        state.appName = params    }}export default mutations

1.用store的commit触发mutations

methods: {    updateAppName () {      this.$store.commit('setAppName', 'admin2')    }  }

2.使用mapMutations

methods: {    ...mapMutations(['setAppName']),    updateAppName () {      this.setAppName('admin2');    }  }

六、actions异步修改state

actions.js

const actions = {    setName (state, name) {        setTimeout(() => {            state.commit('setAppName', name)        }, 2000)    }}export default actions

1.使用dispatch触发actions

methods: {
updateAppName () { this.$store.dispatch('setName', 'admin3') } }

2.使用mapActions

methods: {    ...mapActions(['setName']),    updateAppName () {      this.setName('admin3')    }  }

 

参考:https://blog.csdn.net/m0_37068028/article/details/79860553

 

转载于:https://www.cnblogs.com/bear-blogs/p/10164087.html

你可能感兴趣的文章
java格式及运算符
查看>>
Android相对布局
查看>>
spark on yarn
查看>>
2018.10.18课堂笔记HashMap之前
查看>>
Git学习日记(1)——什么是版本控制
查看>>
A Mathematical Introduction to Robotic Manipulation
查看>>
Changing the Output Path in your Web Applications is a bad idea
查看>>
isArray
查看>>
ssh框架出现Java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误
查看>>
BBS
查看>>
操作的系统的PV操作
查看>>
小凯的疑惑
查看>>
廖雪峰Java13网络编程-1Socket编程-1网络编程概念
查看>>
18 如何使用go来采集windows的基本硬件信息后发送到CMDB的服务器上
查看>>
高品质的网页设计: 实例与技巧
查看>>
2011年20大3D网站
查看>>
Less:优雅的写CSS代码
查看>>
回首博客 年满一周年,记录90个点滴瞬间
查看>>
PHP高效率写法(详解原因)
查看>>
[思路]青鸟快速开发框架的定位
查看>>