Vue核心插件 —— Vuex(2)

定义好vuex的入口文件之后,接下来,要在项目的入口文件(index.js)中使用

import Vue from ‘vue’

import App from ‘./app.vue’

import Vuex from ‘vuex’

import createStore from ‘./store/store’

Vue.use(Vuex)

const store = createStore()

new Vue({

store,

render: (h) => h(App)

}).$mount(root)

至此,就能在组件中使用 console.log(this.$store) 获得相关信息

注意,声明store,应该放进应用入口,(vue是树形结构,只有放在最外面,它的子节点才能拿到$store对象)

Vuex之state和getters

==================

在state文件夹下,新建state.js文件,存储默认变量

export default {

count: 0,

firstName: ‘wang’,

lastName: ‘haili’

}

在getters文件夹下,新建getters.js文件 ,通过state.js中的变量简单操作之后获得其他变量,不会改变原变量的操作

export default {

fullName (state) {

return ${state.firstName} ${state.lastName}

}

}

修改store.js文件的配置,引入state.js 和 getters.js

import Vuex from ‘vuex’

import defaultState from ‘./state/state’

import getters from ‘./getters/getters’

export default () => {

return new Vuex.Store({

state: defaultState,

getters

})

}

在.vue文件中使用方法如下:

{{count}}

{{fullname}}

Vuex之mutation和action

====================

在mutations文件夹下,新建mutations.js文件,对state.js中的变量进行更新操作,即会改变原变量的操作

export default {

// 只传两个参数 state, {num1, num2}

updataCount (state, num) {

state.count = num

}

}

在actions文件夹下,新建actions.js文件,同mutation,只是有异步改变state.js 中变量的操作写在actions.js 中

// actions 和 mutations 类似,mutations中只能有同步代码,actions中写异步代码

export default {

updataCountAsync (state, data) {

setTimeout(() => {

state.commit(‘updataCount’, data.num)

}, data.time)

}

}

修改store.js文件的配置,引入mutations.js  和 actions.js

import Vuex from ‘vuex’

import defaultState from ‘./state/state’

import mutations from ‘./mutations/mutations’

import getters from ‘./getters/getters’

import actions from ‘./actions/actions’

const isDev = process.env.NODE_ENV === ‘development’

export default () => {

return new Vuex.Store({

strict: isDev, // true规定无法在外部修改state,只能在mutations中修改

state: defaultState,

mutations,

actions,

getters,

modules: {}

})

}

在.vue文件中使用方法如下:

{{count}}

{{fullname}}

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值