Vue常见指令

书写规范:

       书写位置:任意 HTML 元素的开始标签内
        如:<p v-if="seen">现在你看到我了</p>
        一个开始标签 内可写入多个指令,多个指令间使用空格分隔
        如<a href="javascript:;" :class="{active:timeflag}" @click="queryAll('time')">全部</a>

插值表达式 {{表达式}}

作用在HTML中
如 <h1> {{ msg }} </h1> msg为我们data中的数据变量
插值表达式可以是 JSON数据、数字、字符串、插值表达式

1.v-if="表达式"

根据表达式结果的真假,确定是否显示当前元素
表达式为true 表示显示该元素 为 false表示隐藏该元素

<div id="root">
    <h1 v-if="ifFlag">快看我</h1>
</div>
   
<script>
    vm=new Vue({
            el:"#root", //绑定根目录 挂载点
            data:{
                ifFlag:true
            }   // //储存数据
        })
</script>

v-if 指令将根据表达式 ifFlag 的值(true 或 false )来决定是否插入 p 元素。


反之当表达式 ifFlag 的值为false 的时候 元素将消失 当前的位置将会被隐藏并留下注释
 

 2.v-eles


v-else指令为v-if添加一个“else块”,v-else元素必须立即跟在v-if元素的后面,否则不能被识别 

 <h1 v-if="isFlag">表达式的值为真,我就能显示</h1>
 <h1 v-else>v-if不成立的时候,我就显示出来了</h1>

v-if为true,后面的v-else不会渲染到HTML
v-if为false,后面的v-else才会渲染到HTML

3.v-show="表达式"

根据表达式结果的true和false来确定是否显示隐藏当前元素

 <div id="root">
        <h1 v-show="showFlag">我是v-show</h1>
 </div>
 <script>
        vm=new Vue({
            el:"#root", //绑定根目录 挂载点
            data:{
                showFlag:true
            }   // //储存数据
        })
 </script>

当元素为true的时候将会进行显示



当元素为false的时候将会将当前元素添加display样式进行隐藏

v-if 和 v-show的区别

相同点: 都是通过表达式的true和fales来切换元素的显示状态
不同点:
v-if:本质是通过操作Dom元素来切换显示状态 表达式为true 元素存于Dom树 为false从dom树中移除
v-show:通过真假来切换元素显示与隐藏 原理是改变元素的display 实现显示隐藏
如果频繁的切换可以使用 v-show 反之使用v-if   
前者切换性能消耗较小(只是通过样式进行显示隐藏) 后者是通过对Dom树的插入和移除进行实现...

v-for(‘(迭代名,索引)’ in 数据源)

本质是通过迭代名来进行循环获取数据源中的数据  

<div id="root">
        <ul>
                //     迭代名  索引      数据源
            <li v-for="(item,index) in list">
                姓名:{{item.name}} 
                年龄:{{item.age}} 
                性别:{{item.sex}}
            </li>
        </ul>
</div>
<script>
        vm = new Vue({
            el: "#root", //绑定根目录 挂载点
            data: {
                list: [
                    {
                        name: '小明',
                        age: '18',
                        sex: '男'
                    }, {
                        name: '小美',
                        age: '19',
                        sex: '女'
                    }, {
                        name: '李华',
                        age: '20',
                        sex: '男'
                    }
                ]
            }  //数据源
        })
</script>

其中我们的 item为迭代名 index为item的索引(可选参数) list 数据源(可以为数组/对象)

 v-on :事件名='函数名(可选参数)'

为HTML元素绑定监听事件(触发事件如:click  change ...)
简写语法:@事件名称 =‘函数名称()’ 函数定义在 methods 配置项中进行处理

<div id="root">
        //      v-on:click='on'
        <button @click="on">点击我</button>
</div>
<script>
        vm = new Vue({
            el: "#root", //绑定根目录 挂载点
            data: {},  //储存数据
            methods:{
                on(){
                    alert("真棒棒!!")
                }
            }, //编写方法
        })
</script>

v-bind:属性名 = ‘表达式’

给元素进行绑定属性 如 v-bind:class="{'绑定类名':表达式(true/flash)}
当表达式为true时将会绑定类型 如果为flash则会解绑类 可以实现动态添加属性
简写形式:v-bind可以省略,直接书写为 :属性名 = ‘表达式’

//css样式
.box{
            background-color: pink;
}

//html代码
<div id="root">
         <!-- v-bind:class="{'绑定类名':根据true和flash进行显示隐藏}" -->
        <div @click="Up"  :class="{'box':isFlag}">
            我是div
        </div>
</div>

//vue.js代码
var vm = new Vue({
        el: "#root",
        data: {
            isFlag: false,
        },
        methods: {
            Up() {
                if(this.isFlag==false){
                    this.isFlag = true
                }else{
                    this.isFlag = false
                }
               
            }
        }
})

 

v-model="变量"

能轻松实现表单输入和应用状态之间的双向绑定
双向绑定:指的是我们在vue实例中的data与其渲染的dom元素上的内容保持一致,两者无论谁被改变,另一方也会相应的更新为相同的数据

//html
 <div id="root">
        <!-- 能够轻松的实现双向绑定 -->
       <input type="text" v-model="val">
       <br>
       {{val}}
 </div>


//vue.js
var vm = new Vue({
        el: "#root",
        data: {
            val:"",
        }
})

tip:v-model 指令只能用在<input>, <select>,<textarea>等这些表单元素上 !!!
 

v-html=“变量”

 可以将当前的标签中的内容替换成变量的元素 原本的内容会被覆盖掉

  <div id="root">
      <h1 v-html="a" @click="add">点一下</h1>
  </div>

// vue.js
 var vm = new Vue({
        el: "#root",
        data: {
            a:'点一下'
        },
        methods:{
            add(){
                this.a='<a href="https://www.baidu.com/">百度一下</a>'
            }
        }
})

 v-text="变量"

可以将 标签中的内容替换成变量的内容(文本) 用法与v-html 一致

//html
<div id="root">
      <h1 v-text="a" @click="add">点我变文本</h1>
</div>

//vue.js
 var vm = new Vue({
        el: "#root",
        data: {
            a:'点我变文本'
        },
        methods:{
            add(){
                this.a='<a href="https://www.baidu.com/">百度一下</a>'
            }
        }
    })


tip:会将原有的内容 替换成v-text 变量里的内容

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值