Vue.js
कस्टम घटक वि-मॉडल के साथ
खोज…
परिचय
अक्सर बार हमें कुछ घटक बनाने पड़ते हैं जो डेटा पर कुछ क्रिया / संचालन करते हैं और हमें मूल घटक में इसकी आवश्यकता होती है। अधिकांश समय vuex
एक बेहतर समाधान होगा, लेकिन उन मामलों में जहां बच्चे के घटक के व्यवहार का अनुप्रयोग राज्य के साथ कोई लेना-देना नहीं है, उदाहरण के लिए: एक रेंज-स्लाइडर, दिनांक / समय पिकर, फ़ाइल रीडर
प्रत्येक घटक के लिए हर बार अलग-अलग स्टोर होने से उनका उपयोग जटिल हो जाता है।
टिप्पणियों
एक घटक पर v-model
रखने के लिए आपको दो शर्तों को पूरा करना होगा।
- इसका एक मान होना चाहिए जिसका नाम 'मूल्य' है।
- यह मूल घटकों द्वारा अपेक्षित मूल्य के साथ एक
input
ईवेंट का उत्सर्जन करना चाहिए।
<component v-model='something'></component>
के लिए सिंटैक्टिक शुगर है
<component
:value="something"
@input="something = $event.target.value"
>
</component>
एक काउंटर घटक पर v- मॉडल
यहां counter
demo
द्वारा एक्सेस किया गया एक चाइल्ड कंपोनेंट है जो v-model
का उपयोग कर एक पैरेंट घटक है।
// child component
Vue.component('counter', {
template: `<div><button @click='add'>+1</button>
<button @click='sub'>-1</button>
<div>this is inside the child component: {{ result }}</div></div>`,
data () {
return {
result: 0
}
},
props: ['value'],
methods: {
emitResult () {
this.$emit('input', this.result)
},
add () {
this.result += 1
this.emitResult()
},
sub () {
this.result -= 1
this.emitResult()
}
}
})
यह बाल घटक हर बार sub()
या add()
विधियों को छोड़ने का result
होगा।
// parent component
new Vue({
el: '#demo',
data () {
return {
resultFromChild: null
}
}
})
// parent template
<div id='demo'>
<counter v-model='resultFromChild'></counter>
This is in parent component {{ resultFromChild }}
</div>
चूंकि v-model
चाइल्ड घटक पर मौजूद है, नाम value
साथ एक प्रोप उसी समय भेजा गया था, counter
पर एक इनपुट ईवेंट है जो बदले में चाइल्ड घटक से मूल्य प्रदान करेगा।