Vue基础

一、Vue介绍:

  • Vue是一个js渐进式框架,只注重视图层;
  • 渐进式:主张最少,没有多做职责之外的事;
  • MVVM开发模式的实现者:(modelviewviewmodel

    viewmodel:连接视图和数据的中间件,实现双向数据绑定

二、Vue.js引入:

  1)本地包;

  2CDN:内容分发网络;//从离自己最近的服务器上快速获取外部资源;

    bootcdn<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>

Vue对象:

  1el:绑定vue对象到指定div

  2data:提供数据,存放键值对;

  3methods:存放函数;

  4computed:计算属性:

    • 计算结果存入缓存,重复调用不会重新执行函数;
    • 调用时无需小括号;//调用方法需要小括号;
    • methods和computed不能重名;

  5watch:监控data中的属性变化;

    var v1 = new Vue({

        el:'#app',

        data:{

            title:"hello vue"

        },

        watch:{

            title:function(newValue,oldValue){

                console.log(newValue+":"+oldValue);

            }

        }

    });

四、基本语法:

  1、插值:

    1)文本:<p>{{ message }}</p>

    2v-once不能修改:<p v-once>{{ message }}</p>

    3HTML<div v-html="message"></div>

    4)纯文本:<p v-html="message"></p>

  2、表达式:

    1)数组:{{[0,1,2,3,4][1]}}

    2)对象:{{ {name:'xiaoming',age:20}.name }}

    3)运算符:{{5+5}}

    4)三目运算符:{{ ok ? 'YES' : 'NO' }}

  5)函数:{{ message.split('').reverse().join('') }}

  3、双向数据绑定:

    <input v-model="message">

  4、属性:v-bind;

    1class<div v-bind:class="{'class1': use}">v-bind:class 指令</div>

    2id<div v-bind:id="'list-' + id"></div>

    3href<a v-bind:href="url"></a>

    缩写:<a :href="url"></a>

  5、事件:v-on

    <input type="text" v-on:click="function()">

    //函数名后的()小括号可以省略;

    缩写:<input type="text" @input="function()">

    1this:当前Vue对象;

    2event:当前事件对象;

    3)参数:v-on:click="increase(2)";多参数:v-on:click="increase(2,event)";

    4)停止事件:event.stopPropagation();

      //修饰符方式:<span v-on:mousemove.stop>停止鼠标事件</span>

  6、修饰符:

    1.事件修饰符:

      1stop阻止事件传播:<a v-on:click.stop></a>

    2.按键修饰符:

      1enter回车:<input v-on:keyup.enter="submit">

      2tab制表符;

      3delete删除/退格;

      4esc

      5space空格;

      6up/down/left/right方向键;

    3.系统修饰键:

      1ctrl;2alt;3shift

      4meta徽标:<input @keyup.meta.67="method">;//win+c键触发;

    4.鼠标修饰键:

      1left

      2right

      3middle

  7、指令:

    1.条件语句:

      1v-if<p v-if="boolean"></p>

      2v-else:<p v-else="boolean"></p>

      3v-else-if:<div v-else-if="boolean">

      4v-show: <p v-show="boolean"></p>

      //如果元素有displaynone,设置v-showtrue无法起作用;

      v-if/v-show区别:

      (1v-if:删除元素;v-show添加display属性为none,隐藏的效果;

      (2v-show:性能更好,只是css切换;

    2.循环语句:

      1<p v-for="a in args">{{a}}</p>

      2)索引:<p v-for="(a,i) in args">{{i}}--{{a}}</p>

<div id="app">
    <p v-for="a in args">{{a}}</p>
</div>
<script>
    new Vue({
        el:'#app',
        data:{
            args:[0,1,2,3,4,5]
        }
    })
</script>

      3)对象:<p v-for="(v,k,i) in students">{{i}}--{{k}}--{{v}}</p>

<div id="app">
    <p v-for="(v,k,i) in students">{{i}}--{{k}}--{{v}}</p>
</div>
<script>
    new Vue({
        el:'#app',
        data:{
            students:{
                name:'zs',
                age:12
            }
        }
    })
</script>

      4)数组,嵌套对象,嵌套for循环;   

    <li v-for=" student in students">
        <span v-for="(v,k,i) in student">{{i}}--{{k}}--{{v}}</span>
    </li>

 

  8、过滤器:

    1)在插值表达式中:{{ message | capitalize }}

    2)在v-bind指令中:<div v-bind:id="rawId | formatId"></div>

    //过滤器可以串联:{{ message | filterA | filterB }}

posted @ 2019-06-24 20:03  开拖拉机的拉风少年  阅读(156)  评论(0编辑  收藏  举报