Vue的基础知识

1、事件修饰符
.stop阻止冒泡
.prevent阻止默认行为
.capture实现捕获触发事件的机制
.self实现只有点击当前元素的时候才会触发事件处理函数
.once 只触发一次处理函数
.self 只会阻止自己身上冒泡行为的触发,并不会真正阻止冒泡的行为,但是.stop会阻止真正的冒泡
2、v-bind和v-model
v-bind只能实现数据的单向绑定,缩写为 “:”,从M 自动绑定到 v,无法实现数据的双向绑定。
v-model可以实现表单元素 和model 中数据的双向绑定。
注意:v-model只能运用到表单元素中,input(radio, text, address, email… ) select checkbox textarea
3、eval()函数
作用:解析字符串,通过计算 string 得到的值(如果有的话)。
4.vue中样式-class

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue.js"></script>
    <style>
       .red{
           color: red;
       }

       .thin{
           font-weight: 200;
       }

       .italic{
           font-style: italic;
       }

       .active{
           letter-spacing: 0.5em;
       }
    </style>
</head>
<body>
    
    <div id="app">

        <h1 class="thin italic active">这是一个很大很大的h1</h1>

        <!-- 第一种使用方式,直接传递一个数组,注意,这里的class需要使用 v-bind做数据绑定   -->
        <!-- 且里面的class需要用单引号扩出来 -->
        <h1 :class="['thin','italic','active']">这是一个很大很大的h1</h1>

        <!-- 在数组中使用三元表达式 -->
        <h1 :class="['thin','italic',flag ? 'active' : '']">这是一个很大很大的h1</h1>

        <!-- 在数组中使用三元表达式不好读,改为在数组里面写一个对象 --> 
        <!-- 用对象来代替三元表达式,提高代码的可重用性 -->
        <h1 :class="['thin', 'italic', {'active':flag}]">这是一个很大很大的h1</h1>

        <!-- 在为 class 使用v-bind绑定对象的时候,对象的属性是类名,由于对象的属性可带引号可不带引号,所有这里没带引号 -->
        <h1 :class="classObj">这是一个很大很大的h1</h1>
    </div>

    <script>
        var vm = new Vue({
            el:'#app',
            data:{
                flag:true,
                classObj:{ red: true, thin:false, italic:true , active: false}
            },
            methods:{

            }
        })
    </script>
    
</body>
</html>


<!-- 在Vue中使用样式 -->
<!-- 使用class样式 -->
<!-- 1. 数组 -->
<!-- 2. 数组中使用三元表达式 -->
<!-- 3. 数组中嵌套对象 -->
<!-- 4. 直接使用对象 -->

5、vue中样式-style

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue.js"></script>


</head>
<body>
    
    <div id="app">
        <!-- 对象就是无序键值对的集合 -->
        <!-- 注意:font-weight单引号是因为规定带短横线的需要加 -->
        <h1 :style=" [ styleObj1, styleObj2 ]">这是一个h1</h1>
    </div>

    <script>
        var vm = new Vue({
            el:'#app',
            data:{
                styleObj1:{  color:'red' , 'font-weight':200},
                styleObj2:{ 'font-style':'italic'}
            },
            methods:{

            }
        })
    </script>

</body>
</html>


<!-- 使用内联样式 -->
<!-- 1.直接在元素上通过 :style的样式,书写样式对象 -->
<!-- 2.将样式对象,定义到data中,并直接引用到style中 -->

6、v-for循环

循环遍历普通数组:

<!-- 循环遍历所有的 -->
        <p v-for="item in list">{{ item }}</p>
        <p v-for=" (item, i) in list">索引值:{{ i }} ---每一项:{{ item  }}</p>

循环遍历对象数组:

 <!-- 注意:在遍历对象身上的键值对时,除了有 val key 外,  在第三个位置上还有一个索引 -->
        <p v-for="(val,key,i) in user">值是: {{val}} ---------键是 {{key}} ---------索引:{{i}}</p>

迭代数字:

<!-- in 后面我们放过  普通数组,对象数组,对象,还可以放数字 -->
        <!-- 注意:如果使用 v-for迭代数字的画,前面的count值从1 开始 -->
        <p v-for="count in 10">这是第 {{count}}次循环</p>

key属性的关键:

<!-- 注意: v-for循环的时候, key属性只能使用number或者string,不能用对象-->
        <!-- 注意: key 在使用的时候,必须使用v-bind属性绑定的形式指定key的值-->
        <!-- 在组件中使用v-for循环的时候,或者在一些特殊的情况中的时候,如果v-for有问题,必须在使用
        v-for的同时,指定 唯一的 字符串/数字 类型 :key的值 -->
        <p v-for="item in list" :key="item.id">
            <input type="checkbox">
            {{item.id}}-----{{item.name}}
            
        </p>

往列表对象中添加方法:

// push()在尾部添加

                    // this.list.push( { id:this.id,name:this.name} )
                    
                    // unshift在头部添加
                    this.list.unshift( { id:this.id,name:this.name} )

7、v-if和v-show的区别

    <!-- v-show的特点是  每次不会重新进行dom的删除和创建操作,只是切换了元素的  display:none 样式 -->
    
    <!-- v-if有较高的切换性能消耗,直接清除元素-->
    <!-- v-show有较高的初始渲染消耗 -->


    <!-- 如果元素涉及到频繁的的切换,最好不要使用  v-if -->
    <!-- 如果元素可能永远也不会被显示出来给用户看到,则推荐使用 v-if -->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值