Vue 基本指令

Vue.js的基本指令

主要任务:Vue的基本指令

1、插值表达式:{{ }}

2、v-show

3、v-if、v-else、v-elseif

4、v-for

5、class和style绑定

一、复习
1、vue框架:是一个渐进式的用于构建用户界面的前端框架
2、vue的使用

(1)页面中引用vue.js文件

(2)vue脚手架:vue-cli

3、Vue实例:

(1)el:用来指定vue实例的容器

(2)data:用来定义Vue实例的数据(属性)

4、v-show指令:

(1)用来显示或隐藏页面元素的:放在页面标签中,它会绑定一个boolean型变量(true显示,false隐藏)

(2)本质是通过控制元素的CSS样式的display属性来实现元素的显示和隐藏

二、基本指令
1、v-if指令:条件渲染指令。使用if条件语句对相关的变量进行判断

(1)根据条件控制页面元素的显示和隐藏

(2)本质是通过DOM的appendChild命令在页面中添加元素的

2、v-show和v-if的区别(重点)

(1)实现方式:v-show底层是通过CSS的display实现的,v-if底层是通过appendChild实现的。

(2)加载速度:v-if的加载速度快,v-show的加载速度慢

(3)切换开销:v-if的切换开销大,v-show的切换开销小

3、v-else-if、v-else指令
<div id="app">
        <span v-if="score>=90">优秀</span>
        <span v-else-if="score>=75">良好</span>
        <span v-else-if="score>=60">及格</span>
        <span v-else>不及格</span>
</div>

    <script src="./js/vue.js"></script>
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                score: 55
            }
        })
    </script>

课堂练习:判断并输出2019年2月的天数

判断闰年的条件:

(1)年份对400取余等于0,且对100取余不等于0

(2)年份对4取余等于0

4、v-for指令:使用循环的方式渲染一组数据。指令操作的对象可以是数组、对象

(1)对象数组:数组中的每个元素都是对象(使用v-for循环遍历一个数组)

   <div id="app">
        <table border="1">
            <thead>
                <tr>
                    <th width="100">编号</th>
                    <th width="150">书名</th>
                    <th width="100">作者</th>
                    <th width="100">单价</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="(book,index) in books" align="center">
                    <td>{{ index+1 }}</td>
                    <td>{{ book.title }}</td>
                    <td>{{ book.author }}</td>
                    <td>{{ book.price }}</td>
                </tr>
            </tbody>
        </table>
    </div>

    <script src="./js/vue.js"></script>
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                books: [
                    {title: '天龙八部',author:'金庸',price:78.5},
                    {title: '西游记',author:'吴承恩',price:95},
                    {title: '三国演义',author:'罗贯中',price:45},
                    {title: '平凡的世界',author:'路遥',price:67}
                ]
            }
        })
    </script>

课堂练:1:电影票房的排名

(2)使用v-for遍历对象的所有属性

        <ul>
            <li v-for="value in student">{{ value }}</li>
        </ul>

    <script src="./js/vue.js"></script>
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                student:{
                    name: '曹操',
                    sex: '男',
                    age: 18,
                    address: '西安'
                }
            }
        })

课堂练习2:使用v-for循环输出一个九九乘法表

<style>
    span{
        width: 80px;
        height: 30px;
        display: inline-block;
    }
</style>
<body>
    <div id="app">
        <div v-for="n in val">
            <span v-for="m in n">{{m}}*{{n}}={{ m*n }}</span>
        </div>
    </div>

    <script src="./js/vue.js"></script>
    <script>
        const vm = new Vue({
            el: '#app',
            data:{
                val: 9
            }
        })
    </script>
</body>
5、元素的class属性的绑定

(1)class属性的作用:定义了另外一种定位页面元素的途径

(2)v-bind指令:又称为动态绑定指令。作用是将页面元素的属性绑定到变量上

    <div id="app">
        <img v-bind:src="imgUrl" width="300" height="180">
    </div>

    <script src="./js/vue.js"></script>
    <script>
        new Vue({
            el:'#app',
            data:{
                imgUrl:'./images/1.png'
            }
        })
    </script>

课堂练习3:动态绑定a标签的href属性

(3)v-bind的语法糖:(:属性名)

(4)使用v-bind绑定class属性

A、对象写法:页面元素的class属性绑定的是一个对象

<style>
    .class1{
        font-size: 45px;
    }
    .class2{
        color: red;
    }
</style>
<body>
    <div id="app">
        <p v-bind:class="cls">{{ info }}</p> //cls是一个对象
    </div>

    <script src="./js/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                info:'AAAAAAA',
                cls:{
                    class1:true,
                    class2:true
                }
            }
        })
    </script>
</body>

B、数组写法:元素的class属性绑定的是一个列表(样式列表)

<style>
    .class1{
        font-size: 45px;
    }
    .class2{
        color: red;
    }
</style>
<body>
    <div id="app">
        <p :class="[c1,c2]">{{ info }}</p>
    </div>

    <script src="./js/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                info:'AAAAAAA',
                c1: 'class1',
                c2: 'class2'
            }
        })
    </script>
</body>
6、元素内联样式的绑定:给元素的style属性绑定变量

A、对象语法:style绑定一个对象,对象的属性名就是样式属性名

 <div v-bind:style="{color:myColor,fontSize:mySize}">蜗牛学苑</div>

 <script src="./js/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                myColor: 'red',
                mySize: '35px'
            }
        })
 </script>

B、数组语法:给style属性绑定一个数组,数组中元素是对象

<div v-bind:style="[k1,k2]">茂陵</div>

<script src="./js/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                k1:{ color: 'blue'},
                k2:{ fontSize: '65px'}
            }
        })
    </script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值