vuexでデータのstateの初期化するには

まずVueでは使用するプロパティをdataに宣言しておかなければなりません。
これはnullでは駄目で、配列として使う予定なら、空でいいので配列を入れておく必要があります。

data () {
    users: []
}

vuexでも同様です。

const state = {
    users: []
}

export default = {
    state
}

データの初期化方法

createdが便利ですが、ページが切り替わることに呼び出されるので、一度だけ初期化したい場合はフラグを立てるなどの工夫が要るかもしれません。

created: functino () {
    if (this.hasUsersRestored) {
        return
    }

    let restoreUsers = state.getStoredUsers() // ここでDBなどに保存したデータを取得
    for (let i = 0, i < restoredUsers.length; i++) {
        state.users.push(restoredUsers[i])
    }
    this.hasUsersRestored = true
}

gettersを利用する方法もあります。
同様にフラグなどで管理しないとgetterが呼び出されるたびに

getters: {
    users: state => {
        if (this.hasUsersRestored) {
            return state.users
        }
        let restoreUsers = state.getStoredUsers() // ここでDBなどに保存したデータを取得
        for (let i = 0, i < restoredUsers.length; i++) {
            state.users.push(restoredUsers[i])
        }
        state.hasUsersRestored = true
    }
}

usersの配列に1つずつ入れている理由は、配列を丸ごと置き換えてしまうと、リアクティブでなくなるからです。
(たぶん、他に良い方法があると思います。)

Vuexで値のセットでエラーが出る時

Vuexを使っていると、次のエラーに悩まされます。

[Vue warn]: Error in callback for watcher "function () { return this._data.$$state }": "Error: [vuex] Do not mutate vuex store state outside mutation handlers."

これはmutation以外で値を変更した時に出てくる警告のようです。

参考: 厳格モード
https://vuex.vuejs.org/ja/strict.html

上記のドキュメントにもありますが、以下の文を消せばOKです。

strict: true

親子関係のcomponentなどでは、親の値を変更をすることもしばしばあると思うのですが、個人的には適用するのはかなり厳しいと思うのですが、使い方がよくないのかもしれませんね。

Vuexで親のgettersを参照する

正しいやり方かわかりませんが、gettersの引数にrootGettersを定義することで参照ができます。
参照方法はmodule名/getter名です。

getters: {
  callParentGetter: (state, getters, rootState, rootGetters) => {
  return rootGetters['parentModule/getterName']
}   

Vuexで双方向セッターを設定する

飛ばし読みしていると、ところどころはまるので注意が必要です。

https://vuex.vuejs.org/ja/forms.html

このエラーが出たときは、mutationsのメソッド名が間違っている可能性があります。

unknown mutation type

moduleごとにmutationsのメソッドの呼び出しは次のようにします。

this.$store.commit('moduleName/updateAttribute', value)

VuexのmapStateの使い方

importでmapStateを宣言しておいて、

count () {
  return this.$store.state.count
}

としていたところを書き換えます。

最終的にはこのような形になります。

<script>
import { mapState } from 'vuex'
export default {
  computed: {
    ...mapState({
      count: 'count'
    })
  },
  methods: {
    increment () {
      this.$store.commit('increment')
    },
    decrement () {
      this.$store.commit('decrement')
    }
  }
}
</script>