Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'props' is assigned a value but never used no-unused-vars vue3

I use on my vue component file. My component code:

<template>
    <router-link :to="{ name: routerName }" type="is-primary"
        class="inline-flex justify-center py-2 px-3 mb-3 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-red-600 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
        <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
                d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" />
        </svg>&nbsp;Cancel
    </router-link>
</template>

<script setup>
const props = defineProps({
    routerName: {
        type: String,
        required: true
    }
})
</script>

But its return eslint error 'props' is assigned a value but never used no-unused-vars

I already add rules on my package.json like this:

    "extends": [
      "plugin:vue/vue3-essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "@babel/eslint-parser"
    },
    "rules": {
            "vue/script-setup-uses-vars": "error",
      "vue/multi-word-component-names": "off"
    }

And still error. My devDepedencies:


  "devDependencies": {
    "@babel/core": "^7.12.16",
    "@babel/eslint-parser": "^7.12.16",
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-eslint": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "eslint": "^7.32.0",
    "eslint-plugin-vue": "^8.0.3"
  },
like image 920
ASHafizullah Avatar asked Oct 15 '25 02:10

ASHafizullah


2 Answers

When you add <script setup> to the Vue File, Vue adds some sugar to the code.

One example is defineProps.

  • You don't need to import defineProps
  • You can easily remove the const props =
<template>
    <router-link :to="{ name: routerName }" type="is-primary"
        class="inline-flex justify-center py-2 px-3 mb-3 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-red-600 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
        <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
                d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" />
        </svg>&nbsp;Cancel
    </router-link>
</template>

<script setup>
defineProps({
  routerName: {
    type: String,
    required: true,
  },
});
</script>

P. S. You can also remove "vue/script-setup-uses-vars" when using vue-eslint-parser v9.0.0 or later. Source

like image 154
basti500 Avatar answered Oct 17 '25 14:10

basti500


You get the error because (as the error points out) you never use props. You should remove the const props =.

like image 35
Jim Avatar answered Oct 17 '25 14:10

Jim