script/no-deprecated-dollar-listeners-api
Vue 3 で $attrs に統合された $listeners を検出します。
既定の重大度: error
プリセット: none
自動修正: なし。修正内容を確認してください
適用範囲: Vue SFC の JS / TS script。Options API または script setup の対象は例を参照してください。
オプション: ルール固有のオプションはありません。重大度とプリセットは設定できます。
設定(Vite+)
import { defineConfig } from "@vizejs/vite-plugin/vite-plus";
export default defineConfig({
lint: {
vize: {
"preset": "incremental",
"rules": {
"script/no-deprecated-dollar-listeners-api": "error"
}
},
},
});
vp run lint
悪い
メンバー参照と引数の裸の参照がいずれも $listeners を使っています。Vue 3 ではリスナーが属性に統合され、この API は削除されました。
<script setup lang="ts">
const handlers = this.$listeners
const forwarded = ctx.$listeners
emit('input', $listeners)
</script>
良い
参照を this.$attrs と setup コンテキストの ctx.attrs に移し、削除されたリスナー API を置き換えます。例の参照元は、それぞれのコンポーネントコンテキストで用意されている必要があります。
<script setup lang="ts">
const handlers = this.$attrs
const forwarded = ctx.attrs
</script>
良い例は上記の設定でこのルールの検出を避ける例です。他のルールでは検出される場合があります。