vue之自定义指令(文本框获得焦点)
app.vue
<template> <div> <h1>App 根组件</h1> <hr /> <!-- 使用组件 --> <my-home></my-home> </div> </template> <script> // 导入组件 import MyHome from './Home.vue' export default { name: 'MyApp', // 注册组件 components: { MyHome, }, } </script> <style lang="less" scoped></style>
Home.vue
<template> <div class="home-container"> <h3 v-color="'red'">MyHome 组件 --- {{ count }}</h3> <hr /> <input type="text" class="form-control" v-focus v-color="'cyan'" /> <button type="button" class="btn btn-primary" @click="count += 1">+1</button> </div> </template> <script> export default { name: 'MyHome', data() { return { count: 0, } }, directives: { // focus: { // mounted(el) { // el.focus() // }, // }, }, } </script> <style lang="less" scoped> .home-container { border: 1px solid #efefef; box-shadow: 0px 1px 10px #efefef; border-radius: 4px; padding: 20px; margin: 20px; } input.form-control { width: 280px; } </style>
main.js(自定义全局指令)
// 声明全局自定义指令
// app.directive('focus', {
// mounted(el) {
// console.log('mounted')
// el.focus()
// },
// updated(el) {
// console.log('updated')
// el.focus()
// },
// })
app.directive('focus', (el) => {
el.focus()
})
app.directive('color', (el, binding) => {
el.style.color = binding.value
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通