2017-04-24 18 views
6

मेरा वूएक्स स्टोर में विभिन्न जटिलताओं वाले ऑब्जेक्ट्स हैं। कुछ ने वस्तुओं को घोंसला दिया है, कुछ में घोंसला वस्तुओं के सरणी हैं।जटिल वस्तुओं के लिए Vuex सर्वोत्तम प्रथाओं

मैं की तर्ज पर एक निर्दिष्ट संपत्ति उत्परिवर्तित करने के लिए सामान्य समारोह बना सकते हैं:

setProperty(state,{ type, id, prop, value }) 
{ 
    state[type][id][prop] = value; 
} 

लेकिन वह जल्दी से नेस्टेड वस्तु, वस्तुओं की सरणियों के लिए जटिल हो जाएगा। यह भी हर एक वस्तु संपत्ति, घोंसला या अन्यथा के लिए उत्परिवर्तन बनाने के लिए बहुत कठिन लगता है।

ऑब्जेक्ट्स, नेस्टेड ऑब्जेक्ट्स, एरे इत्यादि को संशोधित करने के लिए उत्परिवर्तन बनाने के लिए सर्वोत्तम प्रथाएं क्या हैं?

एक अन्य संबंधित मुद्दा है, यह बुरा रूप माना के रूप में राज्य में उन्हें देख करने का विरोध किया म्यूटेशन में वस्तुओं पारित करने के लिए है:

setProperty(state,{ obj, prop, value }) 
{ 
    obj[prop] = value; 
} 
+0

संदर्भित चर्चा/क्रॉस-पोस्ट: https://forum.vuejs.org/t/vuex-best-practices-for-complex-objects/10143 – krsyoung

उत्तर

0

सामान्य शब्दों में, यह सबसे अच्छा है अगर तुम सिर्फ नेस्टेड राज्य से बच सकते हैं पहली जगह संरचना। मुझे यकीन नहीं है कि आपका डेटा कैसे संरचित किया गया है, लेकिन यदि आप ऐसा कर रहे हैं क्योंकि आपके पास उस ऑब्जेक्ट या ऑब्जेक्ट के क्षेत्र के बीच संबंध है, तो यह राज्य के आकार को सामान्य बनाने की कोशिश करने लायक हो सकता है।

रेडक्स लेखक का अच्छा लेख यहां दिया गया है। यह रेडक्स के बारे में बात कर रहा है लेकिन मूल अवधारणा Vuex के लिए बहुत ही समान है। https://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html

और Vues ORM एक पुस्तकालय है जो आपके लिए स्वचालित रूप से ऐसा करता है।

संबंधित मुद्दे