Vue.js基本指令

这篇文章主要为大家详细汇总了Vue.js常用指令及使用方法,包括v-ifv-forv-showv-bindv-onv-modelv-html等指令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

有时候指令太多会造成记错、记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错。

本文主要讲了一下八个指令:

v-if
v-show
v-else
v-for
v-bind
v-on
v-html
v-model

1、v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素;

html:

<div id="example01">
    <p v-if="male">Male</p>
    <p v-if="female">Female</p>
    <p v-if="age>25">Age:{{age}}</p>
    <p v-if="name.indexOf('lin')>0">Name:{{name}}</p>
<div/> 

js:

var vm= new Vue({
    el:"#example01",
    data:{
        male:true,
        female: false,
        age:29,
        name:'colin'
    }
})

页面渲染效果:

这里写图片描述

所以,v-if指令只渲染他身后表达式为true的元素;

在这里引入v-show指令,因为二者的区别是v-show指令会渲染他身后表达式为false的元素,

这样的元素上会添加css代码:style=”display:none”; 将上面v-if的实例代码改为v-show,页面渲染效果为:

这里写图片描述

2、v-showv-if类似,只是会渲染其身后表达式为false的元素,

而且会给这样的元素添加css代码style=”display:none”;

3、 v-else 必须跟在v-if/v-show指令之后,不然不起作用;

如果v-if/v-show指令的表达式为true,则else元素不显示;如果v-if/v-show指令的表达式为false,则else元素显示在页面上;

html:

<div id="app">
    <h1 v-if="age >= 25">Age: {{ age }}</h1>
    <h1 v-else>Name: {{ name }}</h1>
    <hr>
    <h1 v-show="name.indexOf('cool') = 0">Name: {{ name }}</h1>
    <h1 v-else>Sex: {{ sex }}</h1>
</div>

js:

<script>
    var vm = new Vue({
        el: '#app',
        data: {
            age: 21,
            name: 'keepcool',
            sex: 'Male'
        }
    })
</script>

4、v-for 类似JS的遍历,用法为 v-for=”item in items”, items是数组,item为数组中的数组元素。

css:

<style>
    table,th,tr,td{
        border:1px solid #ffcccc;
        border-collapse: collapse;
    }
</style>

html:

<div id="example03">
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Sex</th>
            </tr>
        </thead>
        <tbody>
            <tr v-for="person in people">
                <td>{{ person.name }}</td>
                <td>{{ person.age }}</td>
                <td>{{ person.sex }}</td>
            </tr>
        </tbody>
    </table>
</div>

js:

<script>
    var vm = new Vue({
        el: '#example03',
        data: {
            people: [
                {
                    name: 'Jack',
                    age: 30,
                    sex: 'Male'
                }, 
                {
                    name: 'Bill',
                    age: 26,
                    sex: 'Male'
                }, 
                {
                    name: 'Tracy',
                    age: 22,
                    sex: 'Female'
                }, 
                {
                    name: 'Chris',
                    age: 36,
                    sex: 'Male'
                }
            ]
        }
    })
<script/>

页面效果:

这里写图片描述

5、v-bind 这个指令用于响应地更新 HTML 特性,比如绑定某个class元素或元素的style样式。

分页功能中当前页数高亮的效果,可以使用bind指令。

<ul class="pagination">
    <li v-for="n in pageCount">
        <a href="javascripit:void(0)" v-bind:class="activeNumber === n + 1 ? 'active' : ''">{{ n + 1 }}</a>
    </li>
</ul>

6、v-on 用于监听指定元素的DOM事件,比如点击事件。

html:

<div id="example04">
    <input type="text" v-model="message">
    <button v-on:click="greet">Greet</button>

    <!-- v-on指令可以缩写为@符号-->
    <button @click="greet">Greet Again</button>
</div>

js:

<script>
    var exampleData04={
        message:"Nice meeting U"
    };
    var vm2=new Vue({
        el:"#example04",
        data:exampleData04,
        methods:{
            greet:function(){
                alert(this.message);
            }
        }
    })
</script>

7、 v-html 指令用于输出 html 代码

html:

<div id="app">
    <div v-html="message"></div>
</div>

js:

<script>
    new Vue({
        el: '#app',
        data: {
            message: '<h1>菜鸟教程</h1>'
        }
    })
</script>

8、v-model 指令用于实现双向数据绑定

html:

<div id="app">
    <p>{{ message }}</p>
    <input v-model="message">
</div>

js:

<script>
    new Vue({
        el: '#app',
        data: {
            message: 'Runoob!'
        }
    })
</script>

参考链接: http://www.jb51.net/article/96422.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值