Vue的指令

一、如何使用vue

1、引入vue.js

2、展示HTML

<div id="app">

    <p>{{msg}}</p>

    <p>{{ 80+2 }}</p>

    <p>{{ 20>30 }}</p>

</div>

3、建立一个vue对象

<script>

    new Vue({

        el:"#app",  //表示当前这个元素开始使用vue

        data:{

            msg:"你好啊"

        }

    })

</script>

vue.js 使用了基于 HTML 的模板语法,最简单的使用vue的方式是渲染数据,渲染数据最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值。

二、vue的内置指令

指令作用
v-show

根据表达式的真假值来显示和隐藏元素

v-html插入标签
v-text在元素中插入值
v-if和v-else格局表达式的真价值来显示为何隐藏元素
v-for根据变量的值来循环渲染元素
v-bind绑定元素的属性并执行相应的操作
v-on监听元素事件并执行相应操作
v-model把input的值和变量绑定了,实现了数据和视图的双向绑定
v-once可以让元素或者组件只渲染一次。一旦绑定数据就不会改变
v-pre

用于跳过这个元素和它的子元素的编译过程。对于大量没有指令的节点使用v-pre指令可以加快编译速度

v-cloak

可以解决初始化慢而导致页面闪动的问题。

三、自定义指令

通过自定义指令,我们可以对DOM进行更多的底层操作,这样不仅可以在某些场景下为我们提供快速解决问题的思路,而且让我们对vue的底层有了进一步的了解。我们可以通过Vue.directive({})或者directives:{}来定义指令

1.通过Vue.directive({})注册全局指令

  钩子函数:

(1)bind: 此钩子函数只会被调用一次,可以定义一个在绑定时执行一次的初始化动作

     (2)inserted: 当被绑定的元素插入到父元素中是低调用(此处的父元素不局限于document中)

    (3)update: 不论被绑定的值是否发生了变化,在更新时都会被调用,

    (4)componentUpdated:被绑定的元素在模板完成一次更新周期时调用,

    (5)unbind: 只调用一次,元素解绑时调用

参数: 

(1)el: 指令所绑定的DOM元素,可以直接用来操作DOM

(2)binding: 一个对象,包含以下属性

     name: 指令的名称

     value: 指令绑定的值

     oldValue: 指令绑定前一个值

     expression: 绑定值的字符串形式

     arg: 传给指令的参数

     modifiers: 这是一个包含修饰符的对象

<div id="app">
        <p>页面载入时,input元素自动获取焦点</p>
        <input v-focus> <!--使用的时候要添加‘v-’ -->
    </div>
   <script>
    //注册一个全局自定义指令v-focus
       Vue.directive('focus',{//focus名字可以自己来定义
        // 当元素绑定到DOM 中
           inserted:function(el){//inserted是钩子函数:的那个绑定的元素插入到父元素时触发;el参数代表的是指令绑定的元素
               el.focus()//el元素获得焦点
           }
       })
    //    创建实例
       new Vue({
           el:'#app'
       })
   </script>

 2、通过directives:{}注册局部指令:

注意:此处自定义的指令只能在app这个div里面使用

 <div id="app">
        <p>页面载入时,input元素自动获取焦点</p>
        <input v-focus> <!--使用的时候要添加‘v-’ -->
    </div>
   <script>
//    创建一个实例 
    new Vue({
        el:"#app",
        directives:{
            focus:{
                inserted: function(el){
                    el.focus()
                }
            }
        }
    })
   </script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值