v-focus
在 Vue 3 中,可以通过自定义指令来实现v-focus 功能
- 新建一个名为 focus.ts 的文件,在其中定义一个名为 focus 的自定义指令。
import type { Directive ,App} from 'vue'const vFocus: Directive = {mounted(el: HTMLElement) {console.log(el,'el');el.focus && el.focus()},updated(el: HTMLElement) {el.focus && el.focus()},
}
export const setupFocusDirective = (app: App<Element>) => {app.directive('focus', vFocus)
}
export default vFocus
- 在 main.ts 中导入directive/index.ts并注册指令。
import type { App } from 'vue'
import {setupFocusDirective} from './focus'
export const setupPermission = (app: App<Element>) => {setupFocusDirective(app)
}
<script setup lang="ts">import {ref} from "vue";import { ElInput } from 'element-plus'const value = ref<string>('我是要复制的值')
</script><template><input v-model="value" placeholder="111" v-focus />
</template>