Разница между "v-bind: value" и "v-bind: key" в vue js - PullRequest
0 голосов
/ 14 мая 2018

Ниже мой код. Я хочу использовать тег "select" и хочу отобразить параметры и их значение в скрипте. Я использовал «v-bind: value» для рендеринга значений из скрипта. Но есть ошибка, такая как *** "

[eslint-plugin-vue] [vue / require-v-for-key] Элементы в итерации ожидается, что у вас будет v-bind: key

директивы. "***

Поэтому я дал так ** "

< option v-for= "option in nationalityOpt" v-bind:value="option.value" v-bind:key = ""> {{ option.text }} < / option> ".

Если я удалил «v-bind: value» из своего кода, я не смог бы получить значения параметров в пользовательском интерфейсе. Я хочу исправить ошибку "v-bind: key", и я хотел бы знать разницу между этими двумя. Пожалуйста, помогите.

<template>
 <b-card>
    <h4 slot="header" class="card-title">Employee</h4>
        <b-row>
            <b-col sm="3">
              <b-form-group>
                <label for="name">First Name </label>
                <input type="text" id="name"  class="form-control" placeholder="Enter your name" v-model="firstName">
               </b-form-group>
            </b-col>
     </b-row>
      <b-row>
            <b-col sm="3">
              <b-form-group>
                <label for="name">Nationality</label>
                <select name="" id="" class="form-control"  placeholder="Nationality" v-model="nationality">
                  <option v-for="option in nationalityOpt" v-bind:value="option.value"> {{ option.text }} </option>
                </select>
              </b-form-group>
            </b-col>
          </b-row>
      <input type="submit" value="Submit" @click="validateForm">
 </b-card>
</template>

<script>
export default {
  name: 'addEmpl',
  data () {
    return {
      firstName: '',
      nationality: '1',
      nationalityOpt: [
        { value: '1', text: 'Select' },
        { value: 'IN', text: 'Indian'},
        { value: 'OT', text: 'Others'}
        ],
    }
  }
}
</script>

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Проверьте документы для отображения списка, в частности, о ключах.

Вам нужно v-bind:key в v-for, потому что оно должно дифференцировать каждый визуализированный компонент в случае изменения данных.Вам нужно использовать оба, v-bind:key и v-bind:value в вашем компоненте option, чтобы он работал правильно.

Вы можете упростить и использовать только :key и :value, например:

<option v-for="option in nationalityOpt" :value="option.value" :key="option.value"> 
    {{ option.text }}
</option>
0 голосов
/ 14 мая 2018

Vue.js имеет несколько методов для повышения эффективности рендеринга путем повторного использования компонента.Чтобы список (с v-for) отображался правильно, мы должны предоставить уникальную привязку ключа к каждому элементу https://vuejs.org/v2/guide/list.html#key

 <select name="" id="" class="form-control"  placeholder="Nationality" v-model="nationality">
       <option v-for="option in nationalityOpt" v-bind:value="option.value" :key="option.value"> {{ option.text }} </option>
    </select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...