Vue的内置指令

Posted 橘猫吃不胖~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue的内置指令相关的知识,希望对你有一定的参考价值。

Vue内置指令

1 v-show:根据表达式的真假值来显示和隐藏元素

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

在下面的示例中,第一个p标签不设置该属性,第二个p标签设置v-show为true,第三个p标签设置v-show为false,最后的结果是显示前两个p标签,第三个不显示,示例代码如下:

    <div id="app">
        <p>我是橘猫吃不胖</p>
        <p v-show="show">AAAAA</p>
        <p v-show="hide">BBBBB</p>
    </div>
    <script>
        var vm = new Vue(
            el: '#app',
            data: 
                show: true, // 显示AAAAA
                hide: false // 隐藏AAAA
            
        )
    </script>


除此之外,可以动态的修改v-show的属性值,示例代码如下:

    <div id="app">
        <p>我是橘猫吃不胖</p>
        <p v-show="show">AAAAA</p>
        <p v-show="hide">BBBBB</p>
    </div>
    <script>
        var vm = new Vue(
            el: '#app',
            data: 
                show: true,
                hide: false
            
        )
        // 每隔1秒修改hide的值,达到在屏幕上闪烁的效果
        window.setInterval(function () 
            vm.hide = !vm.hide
        , 1000)
    </script>

2 v-html:插入标签

v-html会插入标签

示例:点击按钮后,插入一个p标签,再次点击按钮后p标签消失

    <div id="app">
        <button @click="show">点击</button>
        <div v-show="isShow" v-html="p"></div>
    </div>
    <script>
        var vm = new Vue( // 创建实例
            el: '#app',
            data: 
                isShow: false, // 设置p标签默认是隐藏的
                p: "<p>橘猫吃不胖</p>" // 设置要插入的p标签
            ,
            methods: 
                show: function ()  // 此处的show是给按钮绑定的事件
                    this.isShow = !this.isShow;
                
            
        )
    </script>

3 v-text:在元素当中插入值

v-text可以在元素当中插入值

示例:初始时不给h1标签中设置值,而是在data中定义值,页面上会正常显示定义的值

    <div id="app">
        <!-- 设置一个h1标签,但是并不设置值 -->
        <h1 v-text="msg"></h1>
    </div>
    <script>
        var vm = new Vue(
            el: '#app',
            data: 
                msg: "橘猫吃不胖" // 定义要显示在h1标签中的值
            
        )
    </script>

4 v-if和v-else:根据表达式的真假值来动态插入和移除元素

v-if和v-else可以根据表达式的真假值来动态插入和移除元素

示例:根据不同的表达式真假值显示不同的效果,当role设置为0的时候,显示超级管理员

    <div id="app">
        <p v-if="role == 0">超级管理员</p>
        <p v-else-if="role == 1">普通管理员</p>
        <p v-else>账户已停用</p>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                role: 0 // 设置role的值
            
        )
    </script>


当设置role为1时,显示普通管理员

    <div id="app">
        <p v-if="role == 0">超级管理员</p>
        <p v-else-if="role == 1">普通管理员</p>
        <p v-else>账户已停用</p>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                role: 1 // 设置role的值
            
        )
    </script>


当role不为0或者1时,显示账户已停用

    <div id="app">
        <p v-if="role == 0">超级管理员</p>
        <p v-else-if="role == 1">普通管理员</p>
        <p v-else>账户已停用</p>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                role: 3 // 设置role的值
            
        )
    </script>

5 v-for:根据变量的值来循环渲染元素

v-for可以根据变量的值来循环渲染元素

示例:v-for指令遍历数组

    <div id="app">
        <span v-for="i in arr">  i  </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                arr: [11, 22, 33, 44] // 定义arr数组
            
        )
    </script>


示例:v-for遍历数组及数组中元素的索引

    <div id="app">
        <span v-for="(i , index) in arr">  index  :  i  </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                arr: [11, 22, 33, 44] // 定义arr数组
            
        )
    </script>


示例:v-for指令遍历对象

    <div id="app">
        <span v-for="i in obj">  i  </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                obj:  // 定义对象
                    "a": 1,
                    "b": 2,
                    "c": 3
                
            
        )
    </script>

示例:v-for遍历对象的属性名及属性值

    <div id="app">
        <span v-for="(item,key) in obj">
             key : item 
        </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                obj:  // 定义对象
                    "a": 1,
                    "b": 2,
                    "c": 3
                
            
        )
    </script>


示例:v-for遍历对象的索引、属性名及属性值

    <div id="app">
        <span v-for="(item,key,index) in obj">
             index — key : index 
        </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                obj:  // 定义对象
                    "a": 1,
                    "b": 2,
                    "c": 3
                
            
        )
    </script>


示例:v-for遍历对象数组

    <div id="app">
        <span v-for="item in obj">
             item 
        </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                obj: [
                     name: "张三", age: 20 ,
                     name: "李四", age: 21 ,
                     name: "王五", age: 22 
                ]
            
        )
    </script>


示例:v-for指令遍历对象数组的具体内容

    <div id="app">
        <span v-for="item in obj">
             item.name 
             item.age 
        </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                obj: [
                     name: "张三", age: 20 ,
                     name: "李四", age: 21 ,
                     name: "王五", age: 22 
                ]
            
        )
    </script>


示例:v-for遍历常量

    <div id="app">
        <span v-for="i in 5">
             i 
        </span>
    </div>
    <script>
        var vm = new Vue(
            el: "#app"
        )
    </script>

6 v-bind:绑定元素的属性并执行相应的操作

v-bind可以绑定元素的属性并执行相应的操作

示例:为a标签绑定href属性

    <div id="app">
        <a v-bind:href="link">去百度</a>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            data: 
                link: "https://baidu.com"
            
        )
    </script>


点击链接可以进行页面的跳转。

7 v-on:监听元素事件,并执行相应的操作

v-on可以监听元素事件,并执行相应的操作

示例:v-on绑定一个事件

    <div id="app">
        <button v-on:click="myClick">点击</button>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            methods: 
                myClick: function () 
                    console.log("点击了按钮");
                
            
        )
    </script>


示例:v-on绑定多个事件

    <div id="app">
        <button v-on="
            click: myClick,
            mouseenter: mouseEnter,
            mouseleave: mouseLeave
        ">点击</button>
    </div>
    <script>
        var vm = new Vue(
            el: "#app",
            methods: 
                myClick: function () 
                    console.log("点击了按钮");
                ,
                mouseEnter: function () 
                    console.log("鼠标进入按钮");
                ,
                mouseLeave: function () 
                    console.log("鼠标移出按钮");
                
            
        )
    </script>

8 v-model:实现了数据和视图的双向绑定

v-model可以实现数据和视图的双向绑定

示例:与input进行绑定,选择性别后在下方显示选择

    <div id="app">
        <p>请选择你的性别:</p>
        <input type="radio" value="" v-model="gender"><input type="radio" value="" v-model="gender"><p>您选择的性别是: gender </p>
    </div>
    <script>
        var vm = new Vue(什么是vue.js中的自定义指令?

VUE之自定义指令

vue自定义指令

Vue基础(环境配置内部指令全局API选项内置组件)

vue自定义指令钩子函数

Vue 自定义指令 directive