Использовать v_for без v-bind: key, как показано в документах?

#vue.js #vue-cli

#vue.js #vue-cli

Вопрос:

Документы vue https://v2.vuejs.org/v2/guide/list.html скажи, что я могу это сделать:

 <div v-for="(value, name) in object">
  {{ name }}: {{ value }}
</div>
  

Но когда я это делаю, я получаю:

 Module Error (from ./node_modules/eslint-loader/index.js):

  7:5  error  Elements in iteration expect to have 'v-bind:key' directives  vue/require-v-for-key
  

Я могу обойти, сказав

     <div v-for="(value, name) in object" v-bind:key="name">
  

Документы неверны? Чего мне не хватает?

 air:v0 crb$ vue --version
@vue/cli 4.5.6
  

Команда ‘npm run serve’, которая запускает ‘vue-cli-service serve’

Весь файл:

 <template>
  <div class="foo">
    <h1>foo Component</h1>
    <!--
    <div v-for="(value, name) in object" v-bind:key="name">
    --> 
    <div v-for="(value, name) in object">
      {{ name }}: {{ value }}
    </div>
  </div>
</template>

<script>
  export default {
        data() {
                return {
                        object: { 'a': 1, 'b': 2 }
                }
        }
  }
</script>
  

Комментарии:

1. Это из eslint. Вы можете указать ему игнорировать правило (имя указано в конце ошибки), и это позволит вам сделать это без

2. Ах, да, спасибо. Я попробую это.

3. Пытаюсь понять, как это сделать. В документах предлагалось добавить «lintOnSave»: false » в ~/..vuerc, но это, похоже, ничего не изменило.

4. Это, вероятно, помогает: vuejs.github.io/eslint-plugin-vue/user-guide/#usage Вы можете просто отключить это единственное правило в нем и позволить проверить все остальное

Ответ №1:

Как вы можете видеть, ESLint дал вам имя правила vue/require-v-for-key , поэтому вы можете просто отключить его.

В вашем ./eslintrc.js файле добавьте следующее правило и установите для него значение warn или off :

 {  
  ...
  rules: {
    'vue/require-v-for-key': 'warn',
  }
}
  
  • warn — покажет вам только предупреждение, а не выдает ошибку. Это предпочтительнее off , потому что предупреждения будут напоминать вам об устранении этих проблем перед публикацией вашего приложения.

  • off — полностью отключит это конкретное правило и не предупредит вас об этом, следовательно, вы можете забыть :key везде установить атрибут, что может привести к снижению производительности, поскольку Vue использует ключи для оптимизации.

Вы также можете установить плагин eslint-plugin-only-warn, если хотите переключить все правила на предупреждения:

 {  
  ...
  plugins: [
    'only-warn'
  ],
  rules: {
    'vue/require-v-for-key': 'warn',
  }
}
  

Комментарии:

1. @CharlieBurns Добро пожаловать. Меня также всегда раздражают эти ошибки ESLint, потому что они появляются, когда вы экспериментируете и создаете прототипы приложения, и не позволяют вам продолжать, поэтому я закончил установкой only-warn плагина, который переключает все правила на предупреждения, которые затем вы можете исправить, когда захотите, а не когда ESLint сообщает вамкому (я обновил ответ и добавил ссылку)