常用内置指令与自定义指令

常用内置指令
  1. v:text : 更新元素的 textContent
  2. v-html : 更新元素的 innerHTML
  3. v-if : 如果为 true, 当前标签才会输出到页面
  4. v-else: 如果为 false, 当前标签才会输出到页面
  5. v-show : 通过控制 display 样式来控制显示/隐藏
  6. v-for : 遍历数组/对象
  7. v-on : 绑定事件监听, 一般简写为@
  8. v-bind : 强制绑定解析表达式, 可以省略 v-bind
  9. v-model : 双向数据绑定
  10. ref : 指定唯一标识, vue 对象通过$refs 属性访问这个元素对象
  11. v-cloak : 防止闪现, 与 css 配合: [v-cloak] { display: none }
  • 内置标签 ref 的使用方法

在要指定的标签中加入 ref=" " 属性
在Vue实例中通过 this.$refs.name 找到对应属性

<div id="example">
   <p ref="content">whf</p>
    <button @click="hint">提示</button> 
</div>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
    new Vue({
        el:'#example',
        data:{
        },
        methods:{
            hint(){
                alert(this.$refs.content.textContent)
            }
        }
    })
</script>

代码说明:点击提示按钮弹出p标签里的文本内容

自定义指令

1) 注册全局指令

Vue.directive('my-directive', function(el, binding){
el.innerHTML = binding.value.toupperCase()
})

2) 注册局部指令

directives : {
'my-directive' : function (el, binding) {
el.innerHTML = binding.value.toupperCase()
}
}
  1. 使用指令
v-my-directive='xxx'         //注意:v- 后面的都是指令的名称
自定义指令应用 之 大小写转换指令

需求:自定义2个指令
1.功能类似于v-text,但转换为全大写 v-upper-text
2.功能类型于v-text,但转换为全小写 v-lower-text

  • 完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>内置指令</title>
    <style>
        [v-cloak]{
            display:none
        }
    </style>
</head>
<body>
<div id="test1">
    <p v-lower-text="msg1"></p>
    <p v-text="msg1"></p>
</div>

<div id="test2">
    <p v-upper-text="msg2"></p>
    <p v-text="msg2"></p>
</div>

<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
    //定义全局指令
    //el:指令属性所在的标签对象
    //binding:包含指令相关信息数据的对象
    
    Vue.directive('upper-text',function (el,binding) {
      console.log(el,binding)
        el.textContent=binding.value.toUpperCase()
    })
    new Vue({
        el:'#test1',
        data:{
            msg1:'NBA I Love This Game !'
        },
        directives:{//注册局部指令,当且仅在当前vm管理范围内有效
            'lower-text':function (el,binding) {
                el.textContent=binding.value.toLowerCase()
            }
        }
    })

    new Vue({
        el:'#test2',
        data:{
            msg2:'Just Do It !'
        }
    })

</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值