vuex官網: https://vuex.vuejs.org/zh/html
搭建Nuxt項目看這個博客: 帶你從不懂到搭建第一個Nuxt項目vue
vuex中的數據源,咱們須要保存的數據就保存在這裏,能夠在頁面經過 this.$store.state.變量名 來獲取咱們定義的數據;
/**漫路h */ export const state = () => ({ count:1 })
隨便一個頁面,經過this.$store.state.變量名便可獲取到數據vuex
Getter至關於vue中的computed計算屬性,getter 的返回值會根據它的依賴被緩存起來,且只有當它的依賴值發生了改變纔會被從新計算,這裏咱們能夠經過定義vuex的Getter來獲取,Getters 能夠用於監聽、state中的值的變化,返回計算後的結果
/*const getters = { //getters至關因而state的計算屬性,若是你須要將變量的值進行計算,而後輸出,寫這裏 include: (state) => (val) => { return state.count==1; }
數據咱們在頁面是獲取到了,可是若是咱們須要修改count值怎麼辦?若是須要修改store中的值惟一的方法就是提交mutation來修改
/**漫路h */ export const mutations = { updateCount(state, value) { state.count = value } }
//actions提交的是mutations,至關於就是改變變量的方法的重寫,可是,actions是能夠進行異步操做的
/*const actions = { async updateCount({state, commit}, val) { commit('updateCount', val); } };*/
文件中的代碼都是同樣的,只是使用的時候有一點不一樣, 看下面代碼演示就能夠了緩存
/**漫路h */ export const state = () => ({ username:"遊客" }) export const mutations = { updateUsername(state, value) { state.username = value } }
<template> <div> 用戶: {{username}} <input v-if="username=='遊客'" type="button" value="登錄" @click="updateUsername('漫路')" /> <input v-if="username!='遊客'" type="button" value="退出" @click="updateUsername('遊客')" /> </div> </template> <script> import { mapState,mapMutations } from 'vuex' export default { computed: { username () { return this.$store.state.user.username } }, methods: { /**漫路h */ ...mapMutations({ updateUsername: 'user/updateUsername' }) }, } </script> <style> </style>
訪問路徑: localhost:3000/user異步