vue学习笔记

一、关于MVVM

  

<body>

    <!-- 将来new的vue实例,会控制这个元素中的所有内容 -->
    <!-- vue 实例所控制的这个元素区域就是我们的 V -->
    <div id="app">
        <p>{{ msg }}</p>
    </div>

    <script type="text/javascript">

        //我们new出来的这个vm对象,就是我们的 MVVM 中的 VM 调度者
         var vm = new Vue({
             el :'#app',//表示new的这个vue实例,要控制页面上的哪个区域

             // 这里的data就是MVVM中的M,专门保存页面的数据的
             data:{ //存放的是el中要用到的数据
                 msg:'欢迎学习vue' //通过vue提供的指令,把数据渲染到页面上
             }
         }) 


     </script>
</body>

二、插值表达式、v-cloak、v-text、v-html

  1. 插值表达式  {{  }}

  2. v-cloak   使用v-cloak能解决插值表达式闪烁问题

<style type="text/css">
        [v-cloak]{
            display:none;
        }
</style>
<p v-cloak>{{ msg }}</p>

  3. v-text  作用与插值表达式相似

    (不同点:①、v-text默认不会有闪烁问题

         ②、v-text会把元素里的内容清空全部替换,而插值表达式不会,插值表达式只会替换自己的占位符) 

<h4 v-text="msg"></h4>

  4.v-html 把赋值的内容为html

<div id="app">
    <div>{{ msg2 }}</div>
    <div v-text="msg2"></div>
    <div v-html="msg2"></div>        
</div>
<script type="text/javascript">

        //我们new出来的这个vm对象,就是我们的 MVVM 中的 VM 调度者
         var vm = new Vue({
             el :'#app',//表示new的这个vue实例,要控制页面上的哪个区域

             // 这里的data就是MVVM中的M,专门保存页面的数据的
             data:{ //存放的是el中要用到的数据
                 msg:'欢迎学习vue', //通过vue提供的指令,把数据渲染到页面上
                 msg2:'<h1>哈哈,我是一个大大的h1,我大,我骄傲<h1>'
             }
         }) 


</script>

三、v-bind :

  ”v-bind:”  是用来绑定属性的指令

  

<div>
    <input type="button" name="" value="按钮" v-bind:title="mytitle  ">
</div>
<script type="text/javascript">
         var vm = new Vue({
             el :'#app',//表示new的这个vue实例,要控制页面上的哪个区域
             data:{ //存放的是el中要用到的数据
                 mytitle:'这是一个自己定义的title'
             }
         }) 

</script>

  mytitle可以看作一个变量 而要在变量后面加 ‘123’等常量 ,可以用如下方法

<input type="button" name="" value="按钮" v-bind:title="mytitle + '123' ">

  v-bind:  可以简写为  :

<input type="button" name="" value="按钮" :title="mytitle + '123' ">

   v-bind:  中可以写合法的js表达式

四、v-on

   vue中提供了v-on事件绑定机制

  

<input type="button" name="" value="按钮"  v-on:click="show">

  show是一个事件 ,当点击按钮时会在methods属性中找到这个事件

var vm = new Vue({
    el :'#app',//表示new的这个vue实例,要控制页面上的哪个区域

     data:{ //存放的是el中要用到的数据

     },
     methods:{  //这个methods属性中定义了当前vue实例所有可以的方法
         show:function(){
             alert('hello');
         }

     }
})                  

可缩写为@

<input type="button" name="" value="按钮" @click="show">

  在vue中使用事件绑定机制,为元素指定处理函数的时候,如果添加了小括号,就可以给函数传参了

<input type="button" name="" value="添加" @click="add(e)">

 

 

五、

在vm实例中 如果想要获取data中的数据 或者想调用methods中的方法,必须通过this.xx 这里的this表示vm实例
 vm实例,会监听自己身上的所有实例的改变,如果数据一发生变化就会把新的数据同步到页面中去

六、事件修饰符

1、   .stop   阻止冒泡事件

<div class="inner" @click="divhandler">
     <input type="button" name="" value="戳他" @click.stop="btnhandler">
</div>

2、    .prevent   阻止默认事件

<a href="http://www.baidu.com" @click.prevent="linkClick">百度一下,你就知道</a>

3、     .capture  添加事件侦听器时使用事件捕获模式

  (捕获机制:先触发父容器的事件再触发子容器的事件)

<div class="inner" @click.capture="divhandler">
      <input type="button" name="" value="戳他" @click="btnhandler">
 </div>

 

4、     .self   只有事件本身元素 才会触发事件(子元素不会)

5、    .once   事件只触发一次

七、v-model

  双向数据绑定

<input type="text" name="" v-model="msg3" style="width: 100%">

  v-model只能用在表单元素

 八、vue中使用样式

  1、第一种使用方式,直接传递一个数组,这里的clas需要使用 v-bind 做数据绑定

<h1 :class="['thin','red','italic']">this is a big h1.big big big</h1>

  2、在数组中使用三元表达式

<h1 :class="[flag?'active':'']">this is a big h1.</h1>

  3、在数组中使用对象来代替三元表达式

<h1 :class="[{'active':flag}]">this is a big h1.</h1>

  
  4、在为class使用 v-bind 绑定对象的时候,对象的属性是类名 对象的属性可用引号也可不用

<h1 :class="classobj">this is a big h1.</h1>
data:{
    classobj:{"red":true,"thin":true,"active":false}
}

九、通过属性绑定为元素绑定行内样式

  1、 直接通过 v-bind 给 style 绑定一个对象

<h1 :style="{color:'red','font-weight':200}">this is a h1</h1>

  2、style绑定一个数组 数组里面为多个对象

<h1 :style="[style1,style2]"></h1>
data:{ 
    style1:{color:'red'},
    style2:{'font-weight':200}  
}

 

posted @ 2019-08-25 00:07  访书  阅读(150)  评论(0编辑  收藏  举报