eslint-config-alloy
Version:
AlloyTeam ESLint 规则
359 lines • 400 kB
JSON
{
"vue/attribute-hyphenation": {
"name": "vue/attribute-hyphenation",
"value": "off",
"description": "限制自定义组件的属性风格",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/attributes-order": {
"name": "vue/attributes-order",
"value": "error",
"description": "标签属性必须按规则排序",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span>\n <span class=\"token attr-name\">ref</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &quot;v-for&quot; should go before &quot;ref&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><span class=\"token attr-name\">v-for</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>item in items<span class=\"token punctuation\">\"</span></span></mark>\n <span class=\"token attr-name\"><mark class=\"eslint-error\" data-tip=\"Attribute &quot;v-once&quot; should go before &quot;ref&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\">v-once</mark></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &quot;id&quot; should go before &quot;ref&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>uniqueID<span class=\"token punctuation\">\"</span></span></mark>\n <span class=\"token attr-name\">v-model</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>headerData<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">my-prop</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>prop<span class=\"token punctuation\">\"</span></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &quot;v-if&quot; should go before &quot;my-prop&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><span class=\"token attr-name\">v-if</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>!visible<span class=\"token punctuation\">\"</span></span></mark>\n <mark class=\"eslint-error\" data-tip=\"Attribute &quot;is&quot; should go before &quot;my-prop&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><span class=\"token attr-name\">is</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span></mark>\n <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>functionCall<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-text</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>textContent<span class=\"token punctuation\">\"</span></span>\n <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span>\n <span class=\"token attr-name\">is</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-for</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>item in items<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-if</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>!visible<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-once</span>\n <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>uniqueID<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">ref</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-model</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>headerData<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">my-prop</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>prop<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>functionCall<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-text</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>textContent<span class=\"token punctuation\">\"</span></span>\n <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/block-lang": {
"name": "vue/block-lang",
"value": "off",
"description": "<script> 标签必须有 lang 属性",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/camelcase": {
"name": "vue/camelcase",
"value": "off",
"description": "变量名必须是 camelCase 风格的",
"reason": "很多 api 或文件名都不是 camelCase 风格的",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "camelcase",
"requiresTypeChecking": false
},
"vue/comment-directive": {
"name": "vue/comment-directive",
"value": "error",
"description": "支持在模版中使用 eslint-disable-next-line 等注释",
"reason": "",
"badExample": "",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token comment\"><!-- eslint-disable-next-line vue/eqeqeq --></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span> <span class=\"token attr-name\">:attr</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>foo == 1<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/component-api-style": {
"name": "vue/component-api-style",
"value": "off",
"description": "限制组件接口定义的模式",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/component-definition-name-casing": {
"name": "vue/component-definition-name-casing",
"value": ["error", "PascalCase"],
"description": "组件的 name 属性必须符合 PascalCase",
"reason": "这是官方建议的规范",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n name<span class=\"token punctuation\">:</span> <span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Property name &quot;foo-bar&quot; is not PascalCase.<br/><span class='eslint-error-rule-id'>eslint(vue/component-definition-name-casing)</span>\">'foo-bar'</mark></span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n name<span class=\"token punctuation\">:</span> <span class=\"token string\">'FooBar'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/component-name-in-template-casing": {
"name": "vue/component-name-in-template-casing",
"value": "off",
"description": "限制组件名的风格",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/component-options-name-casing": {
"name": "vue/component-options-name-casing",
"value": "off",
"description": "限制组件名称的命名规范",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/component-tags-order": {
"name": "vue/component-tags-order",
"value": ["error", { "order": [["script", "template"], "style"] }],
"description": "组件中必须按照 <script>, <template>, <style> 排序",
"reason": "这是官方建议的顺序",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>style</span><span class=\"token punctuation\">></span></span><span class=\"token style\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>style</span><span class=\"token punctuation\">></span></span>\n<mark class=\"eslint-error\" data-tip=\"The &lt;script&gt; should be above the &lt;style&gt; on line 1.<br/><span class='eslint-error-rule-id'>eslint(vue/component-tags-order)</span>\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span></mark>\n<mark class=\"eslint-error\" data-tip=\"The &lt;template&gt; should be above the &lt;style&gt; on line 1.<br/><span class='eslint-error-rule-id'>eslint(vue/component-tags-order)</span>\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span></mark>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>style</span><span class=\"token punctuation\">></span></span><span class=\"token style\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>style</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/custom-event-name-casing": {
"name": "vue/custom-event-name-casing",
"value": "error",
"description": "自定义事件名必须用 kebab-case 风格",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>button</span> <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>$emit(<mark class=\"eslint-error\" data-tip=\"Custom event name &apos;myEvent&apos; must be kebab-case.<br/><span class='eslint-error-rule-id'>eslint(vue/custom-event-name-casing)</span>\">'myEvent'</mark>)<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n methods<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">onClick</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">$emit</span><span class=\"token punctuation\">(</span><span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Custom event name &apos;myEvent&apos; must be kebab-case.<br/><span class='eslint-error-rule-id'>eslint(vue/custom-event-name-casing)</span>\">'myEvent'</mark></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>button</span> <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>$emit('my-event')<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n methods<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">onClick</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">$emit</span><span class=\"token punctuation\">(</span><span class=\"token string\">'my-event'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">$emit</span><span class=\"token punctuation\">(</span><span class=\"token string\">'update:myProp'</span><span class=\"token punctuation\">,</span> myProp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/dot-notation": {
"name": "vue/dot-notation",
"value": "off",
"description": "禁止使用 foo['bar'],必须写成 foo.bar",
"reason": "当需要写一系列属性的时候,可以更统一",
"badExample": "",
"goodExample": "",
"fixable": true,
"extendsBaseRule": "dot-notation",
"requiresTypeChecking": false
},
"vue/eqeqeq": {
"name": "vue/eqeqeq",
"value": ["error", "always"],
"description": "必须使用 === 或 !==,禁止使用 == 或 !=",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span> <span class=\"token attr-name\">:attr</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>foo <mark class=\"eslint-error\" data-tip=\"Expected &apos;===&apos; and instead saw &apos;==&apos;.<br/><span class='eslint-error-rule-id'>eslint(vue/eqeqeq)</span>\">==</mark> 1<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span> <span class=\"token attr-name\">:attr</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>foo === 1<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"fixable": true,
"extendsBaseRule": "eqeqeq",
"requiresTypeChecking": false
},
"vue/first-attribute-linebreak": {
"name": "vue/first-attribute-linebreak",
"value": "off",
"description": "标签的第一个属性必须换行",
"reason": "代码格式问题,最好由 Prettier 解决",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/html-button-has-type": {
"name": "vue/html-button-has-type",
"value": "off",
"description": "button 标签必须有 type 属性",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/html-comment-content-newline": {
"name": "vue/html-comment-content-newline",
"value": "off",
"description": "HTML 注释的 <!-- 后必须有空格或换行符",
"reason": "代码格式问题,最好由 Prettier 解决",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/html-comment-content-spacing": {
"name": "vue/html-comment-content-spacing",
"value": "off",
"description": "HTML 注释必须有首位空格",
"reason": "代码格式问题,最好由 Prettier 解决",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/html-comment-indent": {
"name": "vue/html-comment-indent",
"value": "off",
"description": "HTML 注释缩进必须有两个空格",
"reason": "代码格式问题,最好由 Prettier 解决",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/jsx-uses-vars": {
"name": "vue/jsx-uses-vars",
"value": "error",
"description": "修复 no-unused-vars 不检查 jsx 的问题",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/match-component-file-name": {
"name": "vue/match-component-file-name",
"value": "off",
"description": "组件名称必须和文件名一致",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/multi-word-component-names": {
"name": "vue/multi-word-component-names",
"value": "off",
"description": "组件名称必须是两个以上的单词",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/new-line-between-multi-line-property": {
"name": "vue/new-line-between-multi-line-property",
"value": "off",
"description": "多行属性之间必须有空行",
"reason": "代码格式问题,最好由 Prettier 解决",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/next-tick-style": {
"name": "vue/next-tick-style",
"value": "off",
"description": "nextTick 必须使用 Promise 模式调用",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-arrow-functions-in-watch": {
"name": "vue/no-arrow-functions-in-watch",
"value": "error",
"description": "watch 中禁止使用箭头函数",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n watch<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">foo</span><span class=\"token punctuation\">:</span> <mark class=\"eslint-error\" data-tip=\"You should not use an arrow function to define a watcher.<br/><span class='eslint-error-rule-id'>eslint(vue/no-arrow-functions-in-watch)</span>\"><span class=\"token punctuation\">(</span><span class=\"token parameter\">val<span class=\"token punctuation\">,</span> oldVal</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'new: %s, old: %s'</span><span class=\"token punctuation\">,</span> val<span class=\"token punctuation\">,</span> oldVal<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n watch<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">a</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">val<span class=\"token punctuation\">,</span> oldVal</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'new: %s, old: %s'</span><span class=\"token punctuation\">,</span> val<span class=\"token punctuation\">,</span> oldVal<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n b<span class=\"token punctuation\">:</span> <span class=\"token string\">'someMethod'</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-async-in-computed-properties": {
"name": "vue/no-async-in-computed-properties",
"value": "error",
"description": "计算属性禁止包含异步方法",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">foo</span><span class=\"token punctuation\">:</span> <mark class=\"eslint-error\" data-tip=\"Unexpected async function declaration in &quot;foo&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><span class=\"token keyword\">async</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <mark class=\"eslint-error\" data-tip=\"Unexpected await operator in &quot;foo&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><span class=\"token keyword\">await</span> <span class=\"token function\">someFunc</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">,</span>\n <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <mark class=\"eslint-error\" data-tip=\"Unexpected Promise object in &quot;bar&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <mark class=\"eslint-error\" data-tip=\"Unexpected timed function in &quot;baz&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token function\">someFunc</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-bare-strings-in-template": {
"name": "vue/no-bare-strings-in-template",
"value": "off",
"description": "禁止 <template> 中使用字符串",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-boolean-default": {
"name": "vue/no-boolean-default",
"value": "off",
"description": "禁止给布尔值 props 添加默认值",
"reason": "类型相关的约束交给 TypeScript",
"badExample": "",
"goodExample": "",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-child-content": {
"name": "vue/no-child-content",
"value": "error",
"description": "禁止有 v-html 或 v-text 属性的标签内部还有内容",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span> <span class=\"token attr-name\">v-html</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>replacesChildContent<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><mark class=\"eslint-error\" data-tip=\"Child content is disallowed because it will be overwritten by the v-html directive.<br/><span class='eslint-error-rule-id'>eslint(vue/no-child-content)</span>\">child content</mark><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span><span class=\"token punctuation\">></span></span>child content<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>div</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span> <span class=\"token attr-name\">v-html</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>replacesChildContent<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-computed-properties-in-data": {
"name": "vue/no-computed-properties-in-data",
"value": "error",
"description": "禁止 data() 中有计算属性",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n bar<span class=\"token punctuation\">:</span> <mark class=\"eslint-error\" data-tip=\"The computed property cannot be used in `data()` because it is before initialization.<br/><span class='eslint-error-rule-id'>eslint(vue/no-computed-properties-in-data)</span>\"><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>foo</mark><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n bar<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": false,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-constant-condition": {
"name": "vue/no-constant-condition",
"value": "off",
"description": "禁止将常量作为分支条件判断中的测试表达式,但允许作为循环条件判断中的测试表达式",
"reason": "",
"badExample": "",
"goodExample": "",
"fixable": false,
"extendsBaseRule": "no-constant-condition",
"requiresTypeChecking": false
},
"vue/no-deprecated-data-object-declaration": {
"name": "vue/no-deprecated-data-object-declaration",
"value": "error",
"description": "禁止在 data 中使用已废弃的对象定义",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <mark class=\"eslint-error\" data-tip=\"Object declaration on &apos;data&apos; property is deprecated. Using function declaration instead.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-data-object-declaration)</span>\">data<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n foo<span class=\"token punctuation\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n foo<span class=\"token punctuation\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-deprecated-destroyed-lifecycle": {
"name": "vue/no-deprecated-destroyed-lifecycle",
"value": "error",
"description": "禁止使用已废弃的 destroyed 和 beforeDestroy 生命周期",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"The `beforeDestroy` lifecycle hook is deprecated. Use `beforeUnmount` instead.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-destroyed-lifecycle)</span>\">beforeDestroy</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"The `destroyed` lifecycle hook is deprecated. Use `unmounted` instead.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-destroyed-lifecycle)</span>\">destroyed</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">beforeMount</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\">mounted</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\">beforeUnmount</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\">unmounted</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"fixable": true,
"extendsBaseRule": "",
"requiresTypeChecking": false
},
"vue/no-deprecated-dollar-listeners-api": {
"name": "vue/no-deprecated-dollar-listeners-api",
"value": "error",
"description": "禁止使用已废弃的 $listeners",
"reason": "",
"badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>MyInput</span> <span class=\"token attr-name\">v-on</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span><mark class=\"eslint-error\" data-tip=\"The `$listeners` is deprecated.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-dollar-listeners-api)</span>\">$listeners</mark><span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">listeners</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n <span class=\"token operator\">...</span>this<span class=\"token punctuation\">.</span><mark class=\"eslint-error\" data-tip=\"The `$listeners` is deprecated.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-dollar-listeners-api)</span>\">$listeners</mark><span class