Vue.js

1.双向绑定 v-model

实例:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
    <input type="text" v-model="message"/>
</div>
</body>
<script  src="js/vue/vue.min .js"></script>
<script type="text/javascript">
    var exampleDate={
        message:'hello World!'
    }
    new Vue({
        el:"#app",
        data:exampleDate

    })
</script>
</html>

2.Vue.js的常用指令

v-if指令

实例:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

</head>
<body>

<div id="app">
    <h1>hello,Vue,js!</h1>
    <h1 v-if="yes">Yes</h1>
    <h1 v-if="no">No!</h1>
    <h1 v-if="age>=20">Age:{{ age }}}</h1>
    <h1 v-if="name.indexOf('jack')>=0">Name:{{ name }}}</h1>
</div>
</body>

<script  src="js/vue/vue.min .js"></script>
<script type="text/javascript">
     var vm= new Vue({
        el:"#app",
        data:{
            yes:true,
            no:false,
            age:23,
            name:'hjdfd.jack',

        }
    })
</script>
</html>

这段代码使用了4个表达式:

数据的yes属性为true,所以"Yes!"会被输出;

数据的no属性为false,所以"No!"不会被输出;

运算式age >= 20返回true,所以"Age: 23"会被输出;

运算式name.indexOf('jack') >= 0返回false,所以"Name: hjdfd.jack"会被输出。

!注意:v-if指令是根据条件表达式的值来执行元素的插入或者删除行为。没有显示的值相当于被注释掉了<!-- -->

v-show指令

v-show也是条件渲染指令,和v-if指令不同的是,使用v-show指令的元素始终会被渲染到HTML,它只是简单地为元素设置CSS的style属性。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

</head>
<body>

<div id="app">
    <h1>hello,Vue,js!</h1>
    <h1 v-show="yes">Yes</h1>
    <h1 v-show="no">No!</h1>
    <h1 v-show="age>=20">Age:{{ age }}}</h1>
    <h1 v-show="name.indexOf('jack')>=0">Name:{{ name }}}</h1>
</div>
</body>

<script  src="js/vue/vue.min .js"></script>
<script type="text/javascript">
     var vm= new Vue({
        el:"#app",
        data:{
            yes:true,
            no:false,
            age:23,
            name:'hjdfd.jack',
        }
    })
</script>
</html>
v-show指令如果没有显示相当于style="display: none;"

v-else指令

可以用 v-else 指令为 v-if v-show 添加一个“else块”。 v-else 元素必须立即跟在 v-if v-show 元素的后面——否则它不能被识别。
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

</head>
<body>

<div id="app">
    <h1 v-if="age >= 22">Age: {{ age }}</h1>
    <h1 v-else>Name: {{ name }}</h1>
    <h1>---------------------分割线---------------------</h1>
    <h1 v-show="name.indexOf('jack') >= 0">Name: {{ name }}</h1>
    <h1 v-else>Sex: {{ sex }}</h1>
</div>
</body>

<script  src="js/vue/vue.min .js"></script>
<script type="text/javascript">
     var vm= new Vue({
        el:"#app",
        data:{
            age:25,
            name:'hjdfd.jack',
            sex: 'Male'
        }
    })
</script>
</html>
v-else元素是否渲染在HTML中,取决于前面使用的是v-if还是v-show指令。
这段代码中v-if为true,后面的v-else不会渲染到HTML;v-show为tue,但是后面的v-else仍然渲染到HTML了。

v-for指令

v-for指令基于一个数组渲染一个列表,它和JavaScript的遍历语法相似:

v-for="item in items"

items是一个数组,item是当前被遍历的数组元素。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

</head>
<body>

<div id="app">
    <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>
</body>

<script  src="js/vue/vue.min .js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#app',
        data: {
            people: [{
                name: 'Jack',
                age: 20,
                sex: 'Male'
            }, {
                name: 'lisi',
                age: 23,
                sex: 'Male'
            }, {
                name: 'zhangsan',
                age: 25,
                sex: 'Female'
            }, {
                name: 'wangwu',
                age: 29,
                sex: 'Male'
            }]
        }
    })
</script>
</html>

v-bind指令

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

</head>
<body>
<div id="app">
    <a v-bind:href="wangzhi">wangzhi</a>
</div>
</body>
<script  src="js/vue/vue.min .js"></script>
<script type="text/javascript">

    var vm = new Vue({
        el: '#app',
        data: {
            wangzhi:'http://www.baidu.com'
        }
    })
</script>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值