vue : 在vuex裏寫一個數組首尾元素互換的方法
阿新 • • 發佈:2018-12-21
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裏寫一個數組首尾元素互換的方法