vue.js

作者: zhengjs | 来源:发表于2017-04-01 15:13 被阅读0次

    vue.js

    ------------------

    mvvm

    m model 数据

    v view  视图

    vm  viewModel

    ------------------

    1、vue声明方式

    new Vue({

    el:'选择器'//vue的范围

    data:  //在这个范围内的所有参数

    methods //在这个范围内的所有方法

    })

    注:1、选择器,哪怕选出来的是一组,也默认第一个有效果

    2、el、data、methods固定的单词不能变,里面随便

    3、this始终是vue

    4、当前触发事件的对象

    ev.target

    2、vue的生命周期--从诞生到消亡

    new对象----创建实例

    钩子---钩子函数---生命周期钩子

    在对象声明的过程中,会有不同的阶段,每个阶段都有一个标志,这个标志就是钩子,钩子函数就是在每个对应阶段执行的函数

    1、实例已经创建 created

    2、编译之前    beforeCompile

    3、编译之后    compiled

    4、模板替换    ready

    5、消亡之前    beforeDestroy

    6、消亡之后    destroyed

    created:function(){

    alert('实例已经创建')

    },

    beforeCompile:function(){

    alert('编译之前')

    },

    compiled:function(){

    alert('编译之后')

    },

    ready:function(){

    alert('插入到文档中')

    },

    beforeDestroy:function(){

    alert('销毁之前')

    },

    destroyed:function(){

    alert('销毁之后')

    }

    3、实例的属性:

    vm.$watch  监控数据发生改变

    vm.$destroy 销毁对象

    vm.$el    就是容器对象

    vm.$data  就是数据data89

    vm.$mount 手动挂在vue对象

    vm.$log    当前vue对象的状态

    eg:

    vm.$watch  监控你的数据是否发生变化

    vm.$watch('你要监控的数据',function(str){  //浅度监控

    如果发生变化你要干什么

    })

    str是变化后的东西

    注:数组和字符串发生改变都可以,但是json不行

    vm.$watch('你要监控的数据',function(){  //深度监控

    如果发生变化你要干什么

    },{deep:true})

    4、指令  扩充了html语法

    v-model="表单元素产生的数据"

    radio on off

    checkbox true false

    v-for

    v-for="v in arr"

    v---value

    $index---下标

    v-for="name in json"

    name---json里的值

    $key---json里的建

    v-for="(i,v) in arr"

    i---下标

    v---value

    注:如果有重复的:+

    {{v}}

    v-on:

    v-on:click/mouseover/keyup...

    简写@click

    $event

    事件的简写

    组织冒泡:@click.stop

    组织默认事件:@click.prevent

    键盘

    @keyup.键码

    @keyup.enter/left/esc/space

    注:传参不能乱

    自定义键码:

    Vue.directive('on').keyCodes.ctrl=17;

    v-bind:

    属性里面放表达式可以,但是最好用绑定的形式

    v-bind:src/title/link

    简写:src

    :class

    1、直接写数据

    data:{

          msg:'red'

    }

    :class="msg"

    2、写数组

    :class="[a,b,c]"

    //a b c 都是数据

    3、写json

    data:{

        json:{red:true,border:false}

    }

    :class="json"

    :style

    1、直接写

    :style="a"

    data:{

        a:{

              width:100px

        }

    }

    2、数组

    :style="[a,b]"

    data:{

        a:{

            width:100px

        },

        b:{

            width:100px

        }

    }

    3、json

    :style="{width:a,border:b}"

    data:{

        a:'100px',

        b:'5px solid blue'

    }

    自定义指令:

    Vue.directive('red',function(){

        this.el.style.background='red';

        //this.el 一个原生的对象

    });

    注:指令必须以v打头

    自定义元素指令

    Vue.elementDirective('zns-red', {

        bind: function () {

            this.el.style.background='red';

        }

    });

    5、页面渲染(模板,表达式)

    非转译输出

    {{}}  数据更新模板就变化

    {{*}} 数据只绑定一次,初始化的时候是什么就是什么

    转译输出

    {{{}}} 把html代码转化成页面能看懂的

    过滤器

    |过滤器名称 参数

    currency 钱

    uppercase 转大写

    lowercase 转小写

    capitalize 首字母大写

    debounce 配合事件来用,延迟执行

    limitBy 数据处理

    {{arr | limitBy 1}} 从头开始截取几个

    {{arr | limitBy 1 2}}  截取几个 从哪开始

    filterBy 过滤数据

    orderBy

    {{v}}

    1 是字符串的排列方式的正序 默认是1

    -1 倒叙

    注:|过滤器名称 |过滤器名称.....

    自定义过滤器

    Vue.filter('过滤器名称',function(input){

        return

        //input 就是要过滤的内容

    })

    防止页面刷新出现花括号

    v-cloak  把要渲染的数据先遮蔽注

    注:一般用在模块上,大段

    在要渲染的模块上加v-cloak

    然后在样式里面加

    [v-cloak]{

        display:none

    }

    单个标签

    v-text="数据"

    v-html="数据"  转译输出

    6、属性的计算:

    computed:{**

        要展示的属性名:function(){

            return 返回什么就展示什么

        }

    }

    注:一定要写return

    ---------------

    computed:{

        要展示的属性名:{

            get:function(){},//一定要写return

            set:function(){}//不写return

        }

    }

    7、交互:

    1、下载vue-resource.js

    npm cnpm bower

    2、引入

    3、使用

    this.$http.get/post/jsonp('url',{params:{}}).then(succFn,errFn)

    ------------------------------

    补充angularJS

    渲染数据:

    {{}}

    如果angular挂了,或者网速慢,出来{{}}

    ng-bind

    会把这个标签内的所有东西覆盖掉

    自定义过滤器

    app.filter('过滤器名称',function(){

    return function(inp){

    inp:要过滤的内容

    }

    })

    自定义指令

    app.directive('指令名称',function(){

    return function(scope,element,attr){

    }

    })

    相关文章

      网友评论

          本文标题:vue.js

          本文链接:https://www.haomeiwen.com/subject/gvmiottx.html