02-vue常用指令的基本使用

Posted Ultraman_agul

tags:

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

一、Vue常用指令的基本使用:

1.1 v-on指令绑定事件:v-on:事件=“事件处理程序”

1.2 @符号简写方式绑定事件:@+事件(如:@click)往后的程序中常用简写方式来实现事件的绑定

【说明】以上案例使用的@click来实现一个元素单击事件的绑定,往后所有事件都可以使用“@+事件”这样的方式来绑定一个事件,事件的实现简单而快捷。

1.3 v-show显示或隐藏指令:

根据条件显示或隐藏元素,元素始终会被渲染并保留在 DOM 中。v-show 只是简单地使用display切换元素的none或block

1.4 v-if条件指令

元素会根据v-if的条件,在页面中对当前指令下的节点作删除或添加操作

1.5 v-bind指令:动态绑定

v-bind指令可以将任何元素的属性绑定到vue上来,使得属性值可以使用vue的模型变量来处理。

如:使用v-bind:class来将class属性绑定到vue中,根据isActive的条件来决定使用active类还是on类,当isActive为true,解析为active类显示,反之为on类显示。

注:active和on为class的值,需要加引号,表示这字符串显示

<div v-bind:class="isActive?'active':'on'">测试内容</div>

v-bind还提供了冒号写法的简写方式 :“:属性=值”,简写方式为以后开发中的常用方式

<div :class="isActive?'active':'on'">测试内容</div>

w3c规范的属性都可以使用v-bind或冒号方式来管理

1.6 v-for循环指令

v-for指令用于循环遍历一个列表:v-for="(item,index) in list"

注:item和index作为内容输出,需要使用{{item}}或{{index}}

PS:元素行内指令中的模型(变量)不需要双花括号来渲染,因为指令本身具有渲染解析的功能,在元素中的内容中,要渲染一个模型(变量等),必需使用双花括号。

1.7 事件对象的获取

在使用@绑定一个事件的时候,调用模型中的事件处理函数,如果函数不使用小括号的方式调用,程序会自动传递一个事件对象给函数,如下

<input type="text" @input="handleInput">//handleInput函数调用不加小括号
methods:{
    handleInput(eve){
       console.log(eve)//获取了事件对象
       var val = eve.target.value//获取当前input的value值
    }
}

1.8 通过点击一个button来获取input的值

​ 以上方式获取input的value太复杂,还可以使用更简单的方式。

1.8 v-model指令:双向数据绑定指令

1.10 使用v-model修改获取input的value值的例子

1.11 简易的todoList案例

  • 视图渲染
    <div id="box">
        <!-- 通过v-model绑定,更新数据 -->
        <input type="text" v-model="inData">
        <button @click="handleClick()">add</button>
        <ul>
            <!-- 根据dataList渲染li节点 -->
            <li v-for="(item,index) in dataList">
                {{item}}
                <!-- 每一个节点有一个按钮,用于删除当前li节点,事件中传递了当前li的索引,删除时根据索引删除 -->
                <button @click="handelDel(index)">Del</button>
            </li>
        </ul>
    </div>
  • js
    <script>
        var vm = new Vue({
            el:"#box",
            data:{
                dataList:[],//数据列表
                inData:""//保存input更新的数据
            },
            methods:{
                handleClick(){
                    //点击add时获取input的value,将value内容添加到dataList列表中,页面会自动渲染更新 
                    this.dataList.push(this.inData)
                    //清空原内容
                    this.inData = ""
                },
                handelDel(index){
                    //单击删除按钮时,根据index索引删除对应dataList中的数据,页面会自动渲染更新
                    this.dataList.splice(index,1)
                }
            }
        })
    </script>

1.12 v-html指令

更新元素的 innerHTML注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。如果试图使用 v-html 组合模板,可以重新考虑是否通过使用组件来替代。

    <div id="box">
        <!-- 直接使用不会解析标签 -->
        {{html}}
        <!-- v-html与innerHTML类似 -->
        <div v-html="html"></div>
    </div>
    <script>
        var vm = new Vue({
            el:"#box",
            data:{
                html:"<h1>带有标签的数据模版</h1>"
            }
        })
    </script>

【说明】在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。只在可信内容上使用 v-html永不用在用户提交的内容上。

以上是关于02-vue常用指令的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

Git----常用指令及基本语法

全栈工程师开发实战之从入门到技术实战之02--vue指令

这些角度电子邮件指令代码片段如何连接

02 Vue指令

Git的基本知识和常用指令

02 vue 数据绑定与指令