# Удалены фильтры
удалено
# Обзор
Фильтры были удалены из Vue 3.x и больше не поддерживаются.
# Синтаксис в 2.x
В 2.x можно было использовать фильтры для часто используемого форматирования текста.
Например:
<template>
<h1>Остаток на банковском счёте</h1>
<p>{{ accountBalance | currencyUSD }}</p>
</template>
<script>
export default {
props: {
accountBalance: {
type: Number,
required: true
}
},
filters: {
currencyUSD(value) {
return '$' + value
}
}
}
</script>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Хоть это и кажется удобным, но требует дополнительного синтаксиса, который нарушает ожидания, что выражения внутри фигурных скобок это «обычный JavaScript», что увеличивает затраты на обучение и реализацию.
# Что изменилось в 3.x
В 3.x фильтры удалены и больше не поддерживаются. Вместо них рекомендуем использовать вызовы методов или вычисляемые свойства.
Для примера выше это может быть реализовано таким образом:
<template>
<h1>Остаток на банковском счёте</h1>
<p>{{ accountInUSD }}</p>
</template>
<script>
export default {
props: {
accountBalance: {
type: Number,
required: true
}
},
computed: {
accountInUSD() {
return '$' + this.accountBalance
}
}
}
</script>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Стратегия миграции
Использование фильтров заменить на вычисляемые свойства или вызовы методов.
FILTERS
COMPILER_FILTERS
# Глобальные фильтры
Если использовались глобально зарегистрированные фильтры, которые затем повсеместно использовались в приложении, то вряд ли будет удобно их заменять вычисляемыми свойствами или методами в каждом компоненте.
Можно сделать такие фильтры доступными для всех компонентов через globalProperties:
// main.js
const app = createApp(App)
app.config.globalProperties.$filters = {
currencyUSD(value) {
return '$' + value
}
}
2
3
4
5
6
7
8
В таком случае потребуется исправить все шаблоны на использование объекта $filters
:
<template>
<h1>Остаток на банковском счёте</h1>
<p>{{ $filters.currencyUSD(accountBalance) }}</p>
</template>
2
3
4
Однако при таком подходе можно использовать только методы, но не вычисляемые свойства, поскольку они имеют смысл лишь тогда, когда определены в контексте отдельного компонента.