खोज…


परिचय

अक्सर बार हमें कुछ घटक बनाने पड़ते हैं जो डेटा पर कुछ क्रिया / संचालन करते हैं और हमें मूल घटक में इसकी आवश्यकता होती है। अधिकांश समय vuex एक बेहतर समाधान होगा, लेकिन उन मामलों में जहां बच्चे के घटक के व्यवहार का अनुप्रयोग राज्य के साथ कोई लेना-देना नहीं है, उदाहरण के लिए: एक रेंज-स्लाइडर, दिनांक / समय पिकर, फ़ाइल रीडर

प्रत्येक घटक के लिए हर बार अलग-अलग स्टोर होने से उनका उपयोग जटिल हो जाता है।

टिप्पणियों

एक घटक पर v-model रखने के लिए आपको दो शर्तों को पूरा करना होगा।

  1. इसका एक मान होना चाहिए जिसका नाम 'मूल्य' है।
  2. यह मूल घटकों द्वारा अपेक्षित मूल्य के साथ एक 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 पर एक इनपुट ईवेंट है जो बदले में चाइल्ड घटक से मूल्य प्रदान करेगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow