[英]DRY in Vue.js + Vuex
在處理Vue.js + Vuex時,您以哪種方式處理代碼中的重復。 我有兩個非常相似的變異。
第一個是服務:
function setServiceItem(state, {model, value}) {
const service = state.order_services
service[model] = value
if (model === 'service') {
service.unit_price = value.price
}
updatePrice(service)
}
第二個是材料:
function setMaterialItem(state, {model, value}) {
const material = state.order_material
material[model] = value
if (model === 'material') {
material.unit_price = value.price
}
updatePrice(material)
}
兩者非常相似,但是由於Vuex的設計方式,我無法將其中的兩個合並為一個突變,然后再合並為兩個,這是非常有限的。
我本可以添加第3個參數(例如位置),然后執行類似的操作
function setMisc(state, {model, value, location, eventForPriceAssignment}) {
const item = state[loc]
item[model] = value
if (model === eventForPriceAssignment) {
item.unit_price = value.price
}
updatePrice(material)
}
但這也會使函數復雜得多,並且要求我在每次提交時傳遞更多參數,這將完全抹殺DRY的任何好處。
我的觀點(基於觀點)是,更冗長的方法是正確的方法。 使用vue dev工具時,按名稱查看突變有助於調試。 但是,如果要更新具有許多參數的對象,則使用后者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.