1. 程式人生 > >vue : 在vuex裏寫一個數組首尾元素互換的方法

vue : 在vuex裏寫一個數組首尾元素互換的方法

clas imp 變量 store apar swap 相同 for con

不著急上代碼,先想幾個問題。

vuex裏怎麽寫方法?

  mutation裏寫vuex方法,組件中用commit調用。

數組首尾元素怎麽互換?

  arr.splice(0, 0, arr[arr.length - 1])
  arr.pop()

怎樣讓這個方法是可復用的?

  組件中commit的時候提交想改的數組名字,並在vuex方法中進行檢測。

需要檢測啥?

  1 state中是否存在這個變量

  2 這個變量是不是一個符合要求(length > 1)的數組?

怎樣檢測是否存在這個變量?

  Object.keys(state) 遍歷 state變量名,如果能找到和提交的變量名相同的,則是合法的。

怎樣檢測這個變量是否符合要求?

  Array.isArray(arr) && arr.length > 1

好了,可以上代碼了。

vuex mutation:
swapArrayFirstAndLast(state, name){
      
// console.log("name", name)
      
// console.log(Object.keys(state))
      
const stateNameArr = Object.keys(state)
      
for (let x in stateNameArr) {
        
// console.log(stateNameArr[x]) if (stateNameArr[x] === name) { if (Array.isArray(state[name]) && state[name].length > 1) { // console.log("===bingo===") let arr = state[name] arr.splice(0, 0, arr[arr.length - 1]) arr.pop()
break } else { return } } } }
component.vue:
this.$store.commit(‘swapArrayFirstAndLast‘, ‘aSimpleArray‘)

以上。




vue : 在vuex裏寫一個數組首尾元素互換的方法