File tree Expand file tree Collapse file tree 5 files changed +124
-0
lines changed Expand file tree Collapse file tree 5 files changed +124
-0
lines changed Original file line number Diff line number Diff line change @@ -324,6 +324,7 @@ For example:
324324| [ vue/no-use-computed-property-like-method] ( ./no-use-computed-property-like-method.md ) | disallow use computed property like method | |
325325| [ vue/no-useless-mustaches] ( ./no-useless-mustaches.md ) | disallow unnecessary mustache interpolations | :wrench : |
326326| [ vue/no-useless-v-bind] ( ./no-useless-v-bind.md ) | disallow unnecessary ` v-bind ` directives | :wrench : |
327+ | [ vue/no-v-text] ( ./no-v-text.md ) | disallow use of v-text | :wrench : |
327328| [ vue/padding-line-between-blocks] ( ./padding-line-between-blocks.md ) | require or disallow padding lines between blocks | :wrench : |
328329| [ vue/require-direct-export] ( ./require-direct-export.md ) | require the component to be directly exported | |
329330| [ vue/require-emit-validator] ( ./require-emit-validator.md ) | require type definitions in emits | |
Original file line number Diff line number Diff line change 1+ ---
2+ pageClass : rule-details
3+ sidebarDepth : 0
4+ title : vue/no-v-text
5+ description : disallow use of v-text
6+ ---
7+ # vue/no-v-text
8+
9+ > disallow use of v-text
10+
11+
12+ ## :book : Rule Details
13+
14+ This rule reports all uses of ` v-text ` directive.
15+
16+ <eslint-code-block :rules =" {'vue/no-v-text': ['error']} " >
17+
18+ ``` vue
19+ <template>
20+ <!-- ✓ GOOD -->
21+ <div>{{ foobar }}</div>
22+
23+ <!-- ✗ BAD -->
24+ <div v-text="foobar"></div>
25+ </template>
26+ ```
27+
28+ </eslint-code-block >
29+
30+ ## :wrench : Options
31+
32+ Nothing.
33+
34+ ## :rocket : Version
35+
36+ This rule was introduced in eslint-plugin-vue v7.17.0
37+
38+ ## :mag : Implementation
39+
40+ - [ Rule source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/lib/rules/no-v-text.js )
41+ - [ Test source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/tests/lib/rules/no-v-text.js )
Original file line number Diff line number Diff line change @@ -132,6 +132,7 @@ module.exports = {
132132 'no-v-for-template-key' : require ( './rules/no-v-for-template-key' ) ,
133133 'no-v-html' : require ( './rules/no-v-html' ) ,
134134 'no-v-model-argument' : require ( './rules/no-v-model-argument' ) ,
135+ 'no-v-text' : require ( './rules/no-v-text' ) ,
135136 'no-watch-after-await' : require ( './rules/no-watch-after-await' ) ,
136137 'object-curly-newline' : require ( './rules/object-curly-newline' ) ,
137138 'object-curly-spacing' : require ( './rules/object-curly-spacing' ) ,
Original file line number Diff line number Diff line change 1+ /**
2+ * @author tyankatsu <https://github.com/tyankatsu0105>
3+ * See LICENSE file in root directory for full license.
4+ */
5+ 'use strict'
6+ const utils = require ( '../utils' )
7+
8+ // ------------------------------------------------------------------------------
9+ // Rule Definition
10+ // ------------------------------------------------------------------------------
11+
12+ module . exports = {
13+ meta : {
14+ type : 'suggestion' ,
15+ docs : {
16+ description : 'disallow use of v-text' ,
17+ categories : undefined ,
18+ url : 'https://eslint.vuejs.org/rules/no-v-text.html'
19+ } ,
20+ fixable : null ,
21+ schema : [ ]
22+ } ,
23+ /** @param {RuleContext } context */
24+ create ( context ) {
25+ return utils . defineTemplateBodyVisitor ( context , {
26+ /** @param {VDirective } node */
27+ "VAttribute[directive=true][key.name.name='text']" ( node ) {
28+ context . report ( {
29+ node,
30+ loc : node . loc ,
31+ message : "Don't use 'v-text'."
32+ } )
33+ }
34+ } )
35+ }
36+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * @author tyankatsu <https://github.com/tyankatsu0105>
3+ * See LICENSE file in root directory for full license.
4+ */
5+
6+ 'use strict'
7+
8+ // ------------------------------------------------------------------------------
9+ // Requirements
10+ // ------------------------------------------------------------------------------
11+
12+ const RuleTester = require ( 'eslint' ) . RuleTester
13+ const rule = require ( '../../../lib/rules/no-v-text' )
14+
15+ // ------------------------------------------------------------------------------
16+ // Tests
17+ // ------------------------------------------------------------------------------
18+ const ruleTester = new RuleTester ( {
19+ parser : require . resolve ( 'vue-eslint-parser' ) ,
20+ parserOptions : { ecmaVersion : 2015 }
21+ } )
22+
23+ ruleTester . run ( 'no-v-text' , rule , {
24+ valid : [
25+ {
26+ filename : 'test.vue' ,
27+ code : ''
28+ } ,
29+ {
30+ filename : 'test.vue' ,
31+ code : '<template></template>'
32+ } ,
33+ {
34+ filename : 'test.vue' ,
35+ code : '<template><div>{{foobar}}</div></template>'
36+ }
37+ ] ,
38+ invalid : [
39+ {
40+ filename : 'test.vue' ,
41+ code : '<template><div v-text="foobar"></div></template>' ,
42+ errors : [ "Don't use 'v-text'." ]
43+ }
44+ ]
45+ } )
You can’t perform that action at this time.
0 commit comments