溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vuex項(xiàng)目結(jié)構(gòu)目錄及一些簡(jiǎn)單配置的示例分析

發(fā)布時(shí)間:2021-08-20 13:51:20 來(lái)源:億速云 閱讀:146 作者:小新 欄目:web開(kāi)發(fā)

這篇文章主要為大家展示了“vuex項(xiàng)目結(jié)構(gòu)目錄及一些簡(jiǎn)單配置的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“vuex項(xiàng)目結(jié)構(gòu)目錄及一些簡(jiǎn)單配置的示例分析”這篇文章吧。

vuex需要遵守的規(guī)則:

一、應(yīng)用層級(jí)的狀態(tài)應(yīng)該集中到單個(gè) store 對(duì)象中。

二、提交 mutation 是更改狀態(tài)的唯一方法,并且這個(gè)過(guò)程是同步的。

三、異步邏輯都應(yīng)該封裝到 action 里面。

文件目錄結(jié)構(gòu)

vuex項(xiàng)目結(jié)構(gòu)目錄及一些簡(jiǎn)單配置的示例分析

文件之間的關(guān)系:

store文件夾 - 存放vuex的系列文件

store.js - 引入vuex,設(shè)置state狀態(tài)數(shù)據(jù),引入getter、mutation和action

getter.js - 獲取store內(nèi)的狀態(tài)

mutation.js - 更改store中狀態(tài)用的函數(shù)的存儲(chǔ)之地

action.js - 提交mutation以達(dá)到委婉地修改state狀態(tài),可異步操作

簡(jiǎn)單而又普通的寫法

store.js文件:

import Vue from 'vue'
import Vuex from 'vuex'
import actions from './actions'
import mutations from './mutations'
Vue.use(Vuex)
const state = {
 a: '初始值',
 b: 'balabala...'
}
export default new Vuex.Store({
  state,
  actions,
  mutations
})

main.js文件中(從根組件注入store,就像注入router一樣):

通過(guò)在根實(shí)例中注冊(cè) store 選項(xiàng),該 store 實(shí)例會(huì)注入到根組件下的所有子組件中,且子組件能通過(guò) this.$store 訪問(wèn)到。

import store from './store/index'
new Vue({
 el: '#app',
 router,
 store,
 ...
})

Getter.js 的簡(jiǎn)單配置( store 的計(jì)算屬性,接受state為參數(shù))

export default {
  doneTodos: state = >{
   return state.todos.filter(todo = >todo.done)
  }
}

獲?。辰M件的計(jì)算屬性內(nèi)部):

computed: {
 doneTodosCount () { 
  return this.$store.getters.doneTodosCount 
 }
}

可傳參 的getter屬性的簡(jiǎn)單配置

export default{

 getTodoById: (state) => (id) => { 
  return state.todos.find(todo => todo.id === id) 
 }
}

獲?。?組件的計(jì)算屬性內(nèi)部 ):

computed: {
 getTodoById() { 
  return this.$store.getters.getTodoById(‘參數(shù)')
 }
}

mutation.js簡(jiǎn)單配置:

export default {
  increment(state) {
   //變更狀態(tài)
   state.count++
  }
}

觸發(fā)(組件中)

this.$store.commit(state,payload)
actions.js簡(jiǎn)單配置:
export default{
 action (context) {
 //異步操作
  setTimeout(()=>{
   //變更狀態(tài)
   context.commit('mutationFunName',value)
  })
 }
}

觸發(fā)(組件的)

this.$store.dispatch('mutationFunctionName')
2018-04-07 18:13:34

以上是“vuex項(xiàng)目結(jié)構(gòu)目錄及一些簡(jiǎn)單配置的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI