vue学习笔记--day1

最近开始慢慢接触vue的学习,但愿天天能记录一下学习的内容,好记性不如烂笔头。

vue中的代码与MVVM的关系

  首先咱们解释一下什么的是MVVM,MVVM是针对前端而言的一种模式,目前流行的框架都是这种模式,分为三层,即M层(数据层),V层(显示层)以及VM层(将数据同步到页面显示,并将页面上的修改同步到数据层)。html

<body>
<!--须要进行渲染的部分,即MVVM中的V层-->
<div id="app">{{message}}</div>

<script>
    //建立一个vue实例,用来控制页面中id为app的元素
    //整个的vm实例就想至关因而VM层,用来控制将数据传输到V层
    var vm = new Vue({
        el: '#app',
        //这里的data就至关因而M层,用来控制数据
        data: {
            message: '欢迎使用vue!'
        }
    })
</script>
</body>

  上面的代码很好地解释了在vue中怎样实现MVVM模式的,使用vue就不须要再像之前使用jQuery那样去操做DOM来显示数据,相对来讲会方便不少。前端


vue中展现信息的3种方式之间的区别

vue中展现信息有三种方式,包括:vue

  • 使用插值表达式的形式(也叫双括号)--{{}}
  • 使用v-text='变量'的形式
  • 使用v-html='变量'的形式

这三种方式均可以进行数据展现,区别在于当网速比较慢的时候,使用{{}}会有闪烁的问题,这时须要使用v-cloak命令去解决这个问题,而v-text就不会出现这个问题,可是v-text不能在该变量的先后添加文本,即在标签中的内容是不会显示的,这个时候采用{{}}会更加合适;v-html更适合于变量中有标签须要进行编译的状况。app


v-bind指令的做用

v-bind指令是用来绑定属性的,若是在标签中的某个属性前面使用了v-bind,说明该属性等号后面是一个变量,而且等号后面能够直接写js表达式,有时也会将v-bind:简写成:框架

//下面两行代码的实现效果相同
    <input type="button" v-bind:title="msg3+'按钮'" value="测试按钮">
    <input type="button" :title="msg3+'按钮'" value="测试按钮">
    
    //若是不使用v-bind,那么提示信息就是title属性后面的字符串
    <input type="button" title="msg3" value="测试按钮">

v-on指令的做用

v-on指令是用来绑定事件机制的,前提是须要在实例的methods对象中进行定义,v-on:后面接的是事件类型,例如click等,等号后就是绑定的事件,以下面代码所示:函数

<!--在vue中使用v-on来提供事件绑定机制,在等号后面放的是绑定的方法名,须要在实例的methods对象中进行定义-->
    <p v-on:click="show">这是能够点击的p字段</p>
    
    methods:{
            show: function () {
                alert('Hello vue!')
            }
        }

上面代码的意思就是在p标签中绑定一个click事件,当点击该p标签时,就会弹出显示Hello vue!的对话框。学习


vue实现走马灯的效果

实现效果是,点击开始按钮,文字会进行滚动,点击结束,文字中止滚动(主要是对以前的内容进行综合运用,并添加了一个this的用法)测试

<div id="test">
        <input type="button" value="开始" @click = 'active'>
        <input type="button" value="结束" @click = 'stop'>
        <p>{{msg}}</p>
    </div>
    <script>
        var vm = new Vue({
            el: '#test',
            data: {
                msg: '快跑吧,天要下雨了!!!',
                intervalId: null
            },
            methods: {
                active(){
                    if(this.intervalId !== null) return;

                    this.intervalId = setInterval(() => {
                        console.log(this.msg)
                        start = this.msg.substring(0,1)
                        end = this.msg.substring(1)
                        this.msg = end + start
                    },400)
                },
                stop(){
                    clearInterval(this.intervalId)
                    this.intervalId = null;
                }
            }
        })
        
    </script>

该例子说明,在实例中,this指向的就是该实例,能够经过this去获取data中的任何属性值,在methods中不一样的方法之间变量是不能够共享的,解决方法就是将该变量添加到this上,而后经过this去获取该值。还有一个问题就是在定时器中,this的指向会发生改变,有两种解决方案,第一种是在定时器外面将this的值用变量保存起来,第二种是使用箭头函数,利用箭头函数中的this是指向上下文的这一点调整this指向。this

vue中的事件修饰符

事件修饰符是针对v-on命令的,主要包括如下几个:code

  • .stop:阻止冒泡事件
  • .prevent:阻止默认事件
  • .capture:换成捕获事件
  • .self:自身不被触发
  • .once:只会被触发一次
相关文章
相关标签/搜索