vue

一、什么是vue

是一个mvvm模型的js框架(m--->model v--->view)

model本质上来说就是数据

view就是视图(及最终展现给客户的页面)

  • mv model --->view(由数据驱动视图)
  • vm view --->model(由视图通过事件更新数据)
    vue的初体验

特点是

  • 1、简单上手容易
  • 2、比较的轻量级(相对于AngularJs、ReatJs)
  • 3、组件齐全,文档便于阅读

二、vue的一些基本指令

1、v-text

  • 绑定标签的内容,如果变量中有特殊字符,会进行转义直接以字符串的形式输出到标签中

浏览器显示

2、v-html

  • 绑定标签内容,变量中的内容不会进行转义

    浏览器展示

3、v-if

  • v-if="value"
  • value Boolean true/false
  • 控制元素的显示与隐藏

4、v-show

  • 控制元素的显示与隐藏

v-if(虚拟dom元素)和v-show有什么区别?

(1)、手段:

  • v-if是动态的向DOM树内添加或者删除DOM元素;
  • v-show是通过设置DOM元素的display样式属性控制显隐;

(2)、编译过程:

  • v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;
  • v-show只是简单的基于css切换

(3)、编译条件

  • v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(编译被缓存?编译被缓存后,然后再切换的时候进行局部卸载);
  • v-show是在任何条件下(首次条件是否为真)都被编译,然后被缓存,而且DOM元素保留;

(4)、性能消耗:

  • v-if有更高的切换消耗;
  • v-show有更高的初始渲染消耗;

(5)、使用场景

  • v-if适合运营条件不大可能改变
  • v-show适合频繁切换;

5、v-for列表渲染

  • 渲染数组 v-for="item in arr"

  • 渲染对象 v-for="item in obj"

    浏览器显示

6、v-bind

  • 为标签绑定属性

      new Vue({
         el:".box",
         data:{
            src:"img/1.jpg
         }
      })
      <img v-bind:src="src" />
    

v-bind的简写形式

<img :src="src" />

7、v-bind绑定class类名

<div :class=""></div>
v-bind指令绑定元素的属性

1、对象的形式

<div :class="{text-danger:true}"></div>

2、数组的形式绑定class

<div :class="[textRed,base,radius]"></div>

二、绑定style样式

1、对象的形式绑定样式

html结构

           <div :style="styleObj">some text here...</div>

vue对象

new Vue({
    el: ".box",
    data: {
        styleObj: {
            width: "200px",
            height: "200px",
            backgroundColor: "green",
            color: "yellow"
         }
      }
 })

三、v-model双数据绑定(一般用于为input输入框绑定输入值)

               <input v-model="myvalue" type="text"/>

input 类型分为text/checkbox/radio...

select

四、vue中的事件绑定

1、事件绑定的第一种方式

  • html结构

      <button v-on:click="myclick"></button>
    
  • vue对象

      new Vue({
      	el:".box",
      	methods:{
      		myclick:function(){
      		}
      	}
      })
    

2、绑定事件的第二种方式(简写方式)

  • html结构

      <button @click="myclick"></button>//官方推荐事件绑定用简写形式
    
  • vue对象

      new Vue({
      	el:".box",
      	methods:{
      		myclick:function(){
      		}
      	}
      })
    
  • 可以绑定事件类型:@click/mouseover/mouseout/keydown/keyup...

3、监听键盘事件

  • 所有的键盘事件keydown/keyup/keypress

  • vue内置事件对象
    <input @keydown="input($event)"/>

      new Vue({
      	el:".box",
      	methods:{
      		input:function(ev){
      		}
      	}
      })
    
  • vue自带的键盘事件名

  • keyup.left/right/up/down

  • keydown.left/right/up/down

  • keypress.left/right/up/down

  • 自定义键盘按下事件修饰符

      Vue.config.keyCodes = {
            zero:48
      }
    
      <input type="text" @keydown.zero="input" />
    

4、自带的事件修饰符

  • prevent/stop/self/once
  • prevent 阻止事件的默认行为
  • stop 阻止事件冒泡
posted @ 2017-10-31 19:16  不完美的完美  阅读(435)  评论(0编辑  收藏  举报