Vue 开发实战生态篇 # 16:如何在Vue中使用Vuex
Posted 凯小默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 开发实战生态篇 # 16:如何在Vue中使用Vuex相关的知识,希望对你有一定的参考价值。
说明
【Vue 开发实战】学习笔记。
新建工程
vue create vuex-demo
安装依赖
进入 vuex-demo 文件夹,安装 vuex
npm i vuex@3.1.0
修改main.js
import Vue from 'vue'
import Vuex from 'vuex'
import App from './App.vue'
Vue.use(Vuex)
Vue.config.productionTip = false
const store = new Vuex.Store(
state:
count: 0,
,
mutations:
increment(state)
state.count++
,
// 异步操作
actions:
increment(commit)
setTimeout(()=>
// state.count++ // 不要对state进行更改操作,应该通过commit交给mutations去处理
commit('increment')
, 2000)
,
// 类似计算属性
getters:
doubleCount(state)
return state.count * 2
)
new Vue(
store,
render: h => h(App),
).$mount('#app')
修改 App.vue
<template>
<div id="app">
<h1>count:count</h1>
<h2>doubleCount:$store.getters.doubleCount</h2>
<button @click="$store.commit('increment')">commit:count++</button>
<button @click="$store.dispatch('increment')">dispatch:count++</button>
</div>
</template>
<script>
export default
name: 'app',
computed:
count()
return this.$store.state.count
</script>
<style>
#app
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
</style>
效果可以自己手动试试:
以上是关于Vue 开发实战生态篇 # 16:如何在Vue中使用Vuex的主要内容,如果未能解决你的问题,请参考以下文章
Vue 开发实战生态篇 # 17:Vuex核心概念及底层原理