vue指令

全局指令(获取焦点)

HTML

1
<label>搜索关键字: <input type="text" class="form-control" v-focus/></label>

js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 定义全局的指令  定义时不用写 v- 前缀,但是调用时需要写 v- 前缀
// 参数1:指令的名称,名称前不需要加 v-
// 参数2:是一个对象,ta身上有一些指令先关的函数,这些函数可以在特定的阶段,执行相关的操作
     Vue.directive('focus',{
       inserted:function(el){
//       在每个函数中,第一个参数 永远是el,表示被绑定了指令的那个元素,这个el参数是一个原型的js对象
//       和js行为相关的操作,最好使用inserted函数(一个元素只有插入到DOM之后,才能获取焦点)
         el.focus()
       }
     });
 
 
     var vm = new Vue({
       el:"#app",
       data:{},
       methods:{}
     })

  

全局指令(改变样式)

HTML

1
<label>搜索关键字: <input type="text" class="form-control" v-color/></label>

js

1
2
3
4
5
6
Vue.directive('color',{
   bind:function(el){
//   设置样式时建议使用
     el.style.color = "red"
   }
});

全局指令(自定义改变样式)

HTML

1
<label>搜索关键字: <input type="text" class="form-control" v-color="'gold'"/></label>

js

1
2
3
4
5
Vue.directive('color',{
   bind:function(el,binding){
     el.style.color = binding.value
   }
});

私有指令(自定义改变样式)

HTML

1
<p v-color="'cyan'">{{ msg }}</p>

js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var vm = new Vue({
   el:"#app",
   data:{
      msg:"私有的内部可以有多个指令私有的内部可以有多个指令私有的内部可以有多个指令私有的内部可以有多个指令"
   },
   methods:{},
   directives:{
      'color':{
//       color是样式哈,跟样式有关
         bind:function(el,binding){
           el.style.color = binding.value
         }
       }
   }
})

指令函数的简写

大多数情况下,我们可能想在 bind 和 update 钩子上做重复动作,并且不想关心其他的钩子函数,可以这样写:

HTML

1
<p v-color="'cyan'" v-fontsize="30">{{ msg }}</p>

js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var vm = new Vue({
    el:"#app",
    data:{
      msg:"私有的内部可以有多个指令私有的内部可以有多个指令私有的内部可以有多个指令私有的内部可以有多个指令"
    },
    methods:{},
//    私有的内部可以有多个指令
      directives:{
//        这个function等同于把代码写到bind和update里去
          'fontsize':function(el,binding){
              el.style.fontSize = parseInt(binding.value) + 'px'
          }
      }
})

  

posted @   “好”久不见  阅读(248)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示