Vue学习笔记(一)1.1.0版

Vue

渐进式的JS框架。最核心的思想MVVM,数据的绑定。

如何使用

使用步骤:

1、引入vue.js
2、创建一个容器标签
3、创建一个Vue的实例对象,应该提供至少两个属性el,data 4、编写模板、编写事件处理函数。

模板的细节:

操作元素的文本内容、属性、样式、事件、表单元素
可以使用指令来操作这些内容,指令是13个
1、操作文本内容(5个指令)
    把数据和标签进行绑定,把数据显示到标签内部。
    {{ 变量 }} 插值表达式 要结合指令v-cloak指令使用,避免闪动
    v-text
    v-html
    v-pre
    v-once
2、操作表单元素的数据(1个指令)
    v-model,双向数据绑定。
        本质是,使用v-bind把变量和value属性绑定,监听表单元素的变更事件,当发生变化时,获取value的新值,赋值给变量。
    文本框: v-model绑定变量和value属性
    单选框: v-model绑定变量,并在每个选项中提供value值区分不同的选项。变量应该是一个值。
    复选框: v-model绑定变量,并在每个选项中提供value值区分不同的选项。变量的值应该是一个数组,数组中存放的是选中状态的选项的value的值。
    下拉列表中: select标签中使用v-model绑定变量。需要为每个option标签指定value属性。在单选下,v-model应该绑定一个值。如果多选情况,应该绑定一个数组。
    文本域: 使用v-model绑定变量。
        
3、操作元素的属性
    v-bind:属性名 = "变量"
    实现了元素的属性和变量之间的绑定,变量发生改变,元素的属性也跟着变化。
    a标签的href, img标签的src
4、操作元素的样式:就是用v-bind操作class属性和style属性
    v-bind:class = "变量"
    变量可以是数组或者对象:
    data:{
        arrClasses: ["current"], // 只需要把需要添加的类样式名以字符串的形式放入数组中
        objClasses: {
            类样式名: boolean,   // 类样式名有或者没有,如果为true则有这个样式
        }
    }
    v-bind:style = "变量"
    变量最好是一个对象
    data:{
        objStyles: {
            CSS样式: "css的值"
        }
    }
5、操作元素的事件
    v-on:事件名称 = "事件处理函数或JS语句"
    调用事件处理函数时,有两种调用方式:
        1、直接写函数名,不进行调用。 v-on:click = "handle"
            当事件触发时,Vue会调用handle处理函数,并把事件对象作为参数传递到事件处理函数
        2、直接调用事件处理函数,并传递参数。v-on:click = "handle(参数)"
            当事件触发时,我们自己调用事件处理函数,可以自己决定传递哪些参数到事件处理函数。如果需要使用事件对象,可以直接在参数列表的最后使用$event将事件对象传递给事件处理函数。
    事件修饰符: .stop  .prevent
    按键修饰符: .enter .esc  .delete 
另外的5个指令:
    分支语句相关的指令
        v-if
        v-else-if
        v-else
        v-show
    循环语句相关的指令
        v-for
            遍历数组: v-for="(item, index) in arr"
            遍历对象:  v-for="(value, key, index) in obj"
        注意:一定要加上:key帮助vue加快查找速度

Vue的特性

自定义指令

自己定义的指令,补充内置指令的不足。

基本语法:
Vue.directive("指令名称不带v-", {
    // 指令主体
    inserted: function(el){ // 这个函数会在元素插入到父元素中的时候执行
        // 参数中第一个是el 也就是绑定这个指令的元素对象
    }
})

使用:


高级语法:
Vue.directive("指令名称不带v-", {
    // 指令主体
    inserted: function(el, binding){ // 这个函数会在元素插入到父元素中的时候执行
        // 参数中第一个是el 也就是绑定这个指令的元素对象
        // binding就是获取指令绑定到元素对象时的所有的数据
        // binding.expression // 获取=后面的整个内容,格式是字符串
        binding.value // 把=后面的内容当成js代码进行执行之后,获取执行的结果
            { active: true }
            如果后面放变量名, value获取的就是变量的值。
        // v-on:click="handle" click可以使用binding.arg获取到
    }
})

使用:


data:{
    msg: {
        color: "red"
    }
}

局部指令:定义的位置是在Vue实例中
new Vue({
    directives: { // 局部自定义指令
        指令名: {
            // 指令内容
            inserted: function(el, binding){
                // 指令的内容
            }
        }
    }
})

计算属性

计算属性跟data中的数据是同样的用法。计算属性实际是一个函数,通过对data中固定的数据进行运算,返回一个值,这个值就是计算属性显示的值。如果data中的数据发生了改变,计算属性会重新进行计算,返回新的值。计算属性可以弥补data中数据的不足。计算属性如果原始的数据没有发生变化,是不需要进行重新计算,所以有缓存。

语法:
new Vue({
    computed: {
        计算属性名: function(){
            return 值;
        }
    }
});

{{ 计算属性名 }}

侦听器

监控属性(变量)的值的变化,一旦变化,可以执行一些操作、行为。

语法:
new Vue({
     watch: {
        属性名: function(){
            // 执行一些操作,可以是ajax请求。
        }
    }
})

过滤器

就是对传入的数据进行加工处理

语法:
Vue.filter("过滤器名", function(value){
    return 处理过的值
})

new Vue({
    filters: {
        过滤器名: function(value){
            return 处理过的值
        }
    }
})

Vue实例的生命周期(钩子函数)

创建对象阶段:
    beforeCreate
    created
挂载虚拟DOM阶段:
    beforeMount:
    mounted:
数据发生变化,更新阶段
    beforeUpdate
    updated
销毁阶段:
    beforeDestroy
    destroied

Vue实例对象创建过程中可以使用的属性

new Vue({
    el: // 元素选择器
    data: // 数据对象
    methods: // 方法对象,方法目的,是为了实现行为。
    directives:  // 指令对象
    computed: // 计算属性对象,目的是为了弥补data中数据的不足。computed可以直接当做data中的数据来使用
    watch: // 侦听器对象
    filters: // 过滤器的对象
})

你可能感兴趣的:(Vue学习笔记(一)1.1.0版)