Skip to content

Commit e064d0b

Browse files
authored
Merge branch 'master' into update-props-no-destructure-rule
2 parents 17f7be5 + 6dad5c2 commit e064d0b

File tree

224 files changed

+2463
-1901
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

224 files changed

+2463
-1901
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ jobs:
9898

9999
lint:
100100
docker:
101-
- image: node:14
101+
- image: node:16
102102
steps:
103103
- run:
104104
name: Versions

.markdownlint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
line-length: false
2+
link-fragments: false
23
single-title: false
34
no-inline-html:
45
allowed_elements:

docs/rules/experimental-script-setup-vars.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ since: v7.0.0
99

1010
> prevent variables defined in `<script setup>` to be marked as undefined
1111
12-
- :no_entry_sign: This rule was **removed** in eslint-plugin-vue v9.0.0.
12+
- :no_entry: This rule was **removed** in eslint-plugin-vue v9.0.0.
1313

1414
This rule will find variables defined in `<script setup="args">` and mark them as defined variables.
1515

docs/rules/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ For example:
226226
| [vue/next-tick-style](./next-tick-style.md) | enforce Promise or callback style in `nextTick` | :wrench: | :hammer: |
227227
| [vue/no-bare-strings-in-template](./no-bare-strings-in-template.md) | disallow the use of bare strings in `<template>` | | :hammer: |
228228
| [vue/no-boolean-default](./no-boolean-default.md) | disallow boolean defaults | :wrench: | :hammer: |
229+
| [vue/no-deprecated-model-definition](./no-deprecated-model-definition.md) | disallow deprecated `model` definition (in Vue.js 3.0.0+) | :bulb: | :warning: |
229230
| [vue/no-duplicate-attr-inheritance](./no-duplicate-attr-inheritance.md) | enforce `inheritAttrs` to be set to `false` when using `v-bind="$attrs"` | | :hammer: |
230231
| [vue/no-empty-component-block](./no-empty-component-block.md) | disallow the `<template>` `<script>` `<style>` block to be empty | | :hammer: |
231232
| [vue/no-multiple-objects-in-class](./no-multiple-objects-in-class.md) | disallow to pass multiple objects into array to class | | :hammer: |
@@ -330,7 +331,7 @@ The following rules extend the rules provided by ESLint itself and apply them to
330331

331332
## Deprecated
332333

333-
- :warning: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
334+
- :no_entry_sign: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
334335
- :innocent: We don't fix bugs which are in deprecated rules since we don't have enough resources.
335336

336337
| Rule ID | Replaced by |
@@ -341,7 +342,7 @@ The following rules extend the rules provided by ESLint itself and apply them to
341342

342343
## Removed
343344

344-
- :no_entry_sign: These rules have been removed in a previous major release, after they have been deprecated for a while.
345+
- :no_entry: These rules have been removed in a previous major release, after they have been deprecated for a while.
345346

346347
| Rule ID | Replaced by | Deprecated in version | Removed in version |
347348
|:--------|:------------|:-----------------------|:-------------------|

docs/rules/name-property-casing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ since: v3.8.0
99

1010
> enforce specific casing for the name property in Vue components
1111
12-
- :no_entry_sign: This rule was **removed** in eslint-plugin-vue v9.0.0 and replaced by [vue/component-definition-name-casing](component-definition-name-casing.md) rule.
12+
- :no_entry: This rule was **removed** in eslint-plugin-vue v9.0.0 and replaced by [vue/component-definition-name-casing](component-definition-name-casing.md) rule.
1313

1414
## :book: Rule Details
1515

docs/rules/no-confusing-v-for-v-if.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ since: v3.0.0
99

1010
> disallow confusing `v-for` and `v-if` on the same element
1111
12-
- :no_entry_sign: This rule was **removed** in eslint-plugin-vue v9.0.0 and replaced by [vue/no-use-v-if-with-v-for](no-use-v-if-with-v-for.md) rule.
12+
- :no_entry: This rule was **removed** in eslint-plugin-vue v9.0.0 and replaced by [vue/no-use-v-if-with-v-for](no-use-v-if-with-v-for.md) rule.
1313

1414
## :book: Rule Details
1515

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
pageClass: rule-details
3+
sidebarDepth: 0
4+
title: vue/no-deprecated-model-definition
5+
description: disallow deprecated `model` definition (in Vue.js 3.0.0+)
6+
---
7+
# vue/no-deprecated-model-definition
8+
9+
> disallow deprecated `model` definition (in Vue.js 3.0.0+)
10+
11+
- :exclamation: <badge text="This rule has not been released yet." vertical="middle" type="error"> ***This rule has not been released yet.*** </badge>
12+
- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
13+
14+
## :book: Rule Details
15+
16+
This rule reports use of the component `model` option, which has been deprecated in Vue.js 3.0.0+.
17+
18+
See [Migration Guide – `v-model`](https://v3-migration.vuejs.org/breaking-changes/v-model.html) for more details.
19+
20+
<eslint-code-block :rules="{'vue/no-deprecated-model-definition': ['error']}">
21+
22+
```vue
23+
<script>
24+
export default defineComponent({
25+
model: {
26+
prop: 'my-value',
27+
event: 'input'
28+
}
29+
})
30+
</script>
31+
```
32+
33+
</eslint-code-block>
34+
35+
## :wrench: Options
36+
37+
```json
38+
{
39+
"vue/no-deprecated-model-definition": ["error", {
40+
"allowVue3Compat": true
41+
}]
42+
}
43+
```
44+
45+
### `"allowVue3Compat": true`
46+
47+
Allow `model` definitions with prop/event names that match the Vue.js 3.0.0+ `v-model` syntax, e.g. `fooBar`/`update:fooBar`.
48+
49+
<eslint-code-block :rules="{'vue/no-deprecated-model-definition': ['error', { allowVue3Compat: true }]}">
50+
51+
```vue
52+
<script>
53+
export default defineComponent({
54+
model: {
55+
prop: 'fooBar',
56+
event: 'update:fooBar'
57+
}
58+
})
59+
</script>
60+
```
61+
62+
</eslint-code-block>
63+
64+
## :couple: Related Rules
65+
66+
- [vue/valid-model-definition](./valid-model-definition.md) (for Vue.js 2.x)
67+
- [vue/no-v-model-argument](./no-v-model-argument.md) (for Vue.js 2.x)
68+
69+
## :books: Further Reading
70+
71+
- [Migration Guide – `v-model`](https://v3-migration.vuejs.org/breaking-changes/v-model.html)
72+
73+
## :mag: Implementation
74+
75+
- [Rule source](https://github.com/vuejs/eslint-plugin-vue/blob/master/lib/rules/no-deprecated-model-definition.js)
76+
- [Test source](https://github.com/vuejs/eslint-plugin-vue/blob/master/tests/lib/rules/no-deprecated-model-definition.js)

docs/rules/no-invalid-model-keys.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ since: v7.9.0
99

1010
> require valid keys in model option
1111
12-
- :warning: This rule was **deprecated** and replaced by [vue/valid-model-definition](valid-model-definition.md) rule.
12+
- :no_entry_sign: This rule was **deprecated** and replaced by [vue/valid-model-definition](valid-model-definition.md) rule.
1313

1414
## :book: Rule Details
1515

docs/rules/no-unregistered-components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ since: v7.0.0
99

1010
> disallow using components that are not registered inside templates
1111
12-
- :no_entry_sign: This rule was **removed** in eslint-plugin-vue v9.0.0 and replaced by [vue/no-undef-components](no-undef-components.md) rule.
12+
- :no_entry: This rule was **removed** in eslint-plugin-vue v9.0.0 and replaced by [vue/no-undef-components](no-undef-components.md) rule.
1313

1414
## :book: Rule Details
1515

docs/rules/script-setup-uses-vars.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ since: v7.13.0
99

1010
> prevent `<script setup>` variables used in `<template>` to be marked as unused
1111
12-
- :warning: This rule was **deprecated**.
12+
- :no_entry_sign: This rule was **deprecated**.
1313

1414
::: tip
1515

0 commit comments

Comments
 (0)