Vue js中“ v-bind:value”和“ v-bind:key”之间的区别

Ash*_*ini 2 vue.js vuejs2

下面是我的代码。我想使用“选择”标签,并且想从脚本中渲染选项及其值。我已经使用“ 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”,则无法在UI中获得选项值。我想纠正“ 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>
Run Code Online (Sandbox Code Playgroud)

提前致谢。

mth*_*rsj 5

检查文档以获取“列表渲染”,尤其是有关按键的信息。

您需要v-bind:key使用v-for,因为在数据更改的情况下,它需要区分呈现的每个组件。您需要同时使用两者v-bind:keyv-bind:value组件中的内容option,才能使其正常工作。

您可以简化和使用just :key:value,例如:

<option v-for="option in nationalityOpt" :value="option.value" :key="option.value"> 
    {{ option.text }}
</option>
Run Code Online (Sandbox Code Playgroud)


itt*_*tus 1

Vue.js 有一些通过重用组件来提高渲染效率的方法。为了使列表(使用 v-for)正确渲染,我们应该为每个元素提供唯一的 :key 绑定https://v2.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>
Run Code Online (Sandbox Code Playgroud)