File tree Expand file tree Collapse file tree 5 files changed +62
-0
lines changed Expand file tree Collapse file tree 5 files changed +62
-0
lines changed Original file line number Diff line number Diff line change @@ -304,6 +304,7 @@ For example:
304304| [ vue/no-unregistered-components] ( ./no-unregistered-components.md ) | disallow using components that are not registered inside templates | |
305305| [ vue/no-unsupported-features] ( ./no-unsupported-features.md ) | disallow unsupported Vue.js syntax on the specified version | :wrench : |
306306| [ vue/no-unused-properties] ( ./no-unused-properties.md ) | disallow unused properties | |
307+ | [ vue/no-useless-concat] ( ./no-useless-concat.md ) | disallow unnecessary concatenation of literals or template literals | |
307308| [ vue/object-curly-spacing] ( ./object-curly-spacing.md ) | enforce consistent spacing inside braces | :wrench : |
308309| [ vue/padding-line-between-blocks] ( ./padding-line-between-blocks.md ) | require or disallow padding lines between blocks | :wrench : |
309310| [ vue/prefer-template] ( ./prefer-template.md ) | require template literals instead of string concatenation | :wrench : |
Original file line number Diff line number Diff line change 1+ ---
2+ pageClass : rule-details
3+ sidebarDepth : 0
4+ title : vue/no-useless-concat
5+ description : disallow unnecessary concatenation of literals or template literals
6+ ---
7+ # vue/no-useless-concat
8+ > disallow unnecessary concatenation of literals or template literals
9+
10+ This rule is the same rule as core [ no-useless-concat] rule but it applies to the expressions in ` <template> ` .
11+
12+ ## :books : Further reading
13+
14+ - [ no-useless-concat]
15+
16+ [ no-useless-concat ] : https://eslint.org/docs/rules/no-useless-concat
17+
18+ ## :mag : Implementation
19+
20+ - [ Rule source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/lib/rules/no-useless-concat.js )
21+ - [ Test source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/tests/lib/rules/no-useless-concat.js )
Original file line number Diff line number Diff line change @@ -92,6 +92,7 @@ module.exports = {
9292 'no-unused-properties' : require ( './rules/no-unused-properties' ) ,
9393 'no-unused-vars' : require ( './rules/no-unused-vars' ) ,
9494 'no-use-v-if-with-v-for' : require ( './rules/no-use-v-if-with-v-for' ) ,
95+ 'no-useless-concat' : require ( './rules/no-useless-concat' ) ,
9596 'no-v-html' : require ( './rules/no-v-html' ) ,
9697 'no-v-model-argument' : require ( './rules/no-v-model-argument' ) ,
9798 'no-watch-after-await' : require ( './rules/no-watch-after-await' ) ,
Original file line number Diff line number Diff line change 1+ /**
2+ * @author Yosuke Ota
3+ */
4+ 'use strict'
5+
6+ const { wrapCoreRule } = require ( '../utils' )
7+
8+ // eslint-disable-next-line no-invalid-meta, no-invalid-meta-docs-categories
9+ module . exports = wrapCoreRule ( require ( 'eslint/lib/rules/no-useless-concat' ) )
Original file line number Diff line number Diff line change 1+ /**
2+ * @author Yosuke Ota
3+ */
4+ 'use strict'
5+
6+ const RuleTester = require ( 'eslint' ) . RuleTester
7+ const rule = require ( '../../../lib/rules/no-useless-concat' )
8+
9+ const tester = new RuleTester ( {
10+ parser : require . resolve ( 'vue-eslint-parser' ) ,
11+ parserOptions : { ecmaVersion : 2015 }
12+ } )
13+
14+ tester . run ( 'no-useless-concat' , rule , {
15+ valid : [
16+ `<template><div :attr="'foo-bar'" /></template>` ,
17+ '<template><div attr="foo-bar" /></template>' ,
18+ `<template><div :[\`foo-bar\`]="a" /></template>`
19+ ] ,
20+ invalid : [
21+ {
22+ code : `<template><div :attr="'foo'+'bar'" /></template>` ,
23+ errors : [ 'Unexpected string concatenation of literals.' ]
24+ } ,
25+ {
26+ code : `<template><div :[\`foo\`+\`bar\`]="a" /></template>` ,
27+ errors : [ 'Unexpected string concatenation of literals.' ]
28+ }
29+ ]
30+ } )
You can’t perform that action at this time.
0 commit comments