vue笔记

一、 Vue.js特性

1.MVVM模式

M: model 业务模型,用处:处理数据,提供数据

V: view 用户界面、用户视图、界面可视部分

业务模型model中的数据发生改变的时候,用户视图view也随之变化。用户视图view改变的时候,业务模型model中的数据也可以发生改变。

2.指令系统

3.组件化

4.Vue.js 2.0开始支持虚拟DOM,虚拟DOM可以提升页面的刷新速度。(Vue.js 1.0 是操作的真是DOM,而不是虚拟DOM)

二、vue的优点

1.轻量级的框架

2.双向数据绑定

3.组件化

4.高性能

5.单页开发

三、常用指令

v-text/v-html:

使用方法:

<span v-text="msg"></span>
<!-- 和下面的一样 -->
<span>{{msg}}</span>
<div v-html="html"></div>

v-if:根据表达式的真假渲染dom元素

<h1 v-if="ok">Yes</h1>

相当于

<!-- Handlebars 模板 -->
{{#if ok}}
<h1>Yes</h1>
{{/if}}

v-else:

v-else不只是可以搭配v-if,还可以搭配v-show
必须注意 :v-else元素必须紧跟在 v-if或 v-show元素的后面——否则它不能被识别

<div v-if="Math.random() > 0.5">
    Sorry
</div>
<div v-else>
    Not sorry
</div>

v-show:根据条件展示元素

用法跟v-if是一样的,不同的是有 v-show的元素会始终渲染并保持在 DOM 中。v-show是简单的切换元素的 CSS 属性 display。

v-if:是真实的条件渲染,切换时销毁和重建,第一次如果判断条件为假,是什么都不做的,官方称为懒惰性。
v-show:元素始终被编译并保留,只是简单地基于 CSS 切换
总结一下, v-if有更高的切换消耗而 v-show有更高的初始渲染消耗。因此,如果需要频繁切换使用 v-show较好,如果在运行时条件不大可能改变则使用 v-if较好。
v-for:遍历数据,for循环

<!-- html -->
<ul id="example-1">
    <li v-for="(item,index) in user">
        {{ item.username }}
    </li>
//第二种写法
    <li v-for="(item,index) in user" v-html='item.username'></li>
</ul>

//javascript

//javascript
var example1 = new Vue({
    el: '#example-1',
    data(){
        return {
	    	user:[{
	    		id:"1",
	    		username:'张三',
	    		pwd:"123"
	    	},{
	    		id:"2",
	    		username:'李四',
	    		pwd:"123"
	    	},{
	    		id:"3",
	    		username:'小明',
	    		pwd:"123"
	    	}]    
  		}
    }
})

扩展应用:
给偶数行加上一个class为old

<ul style='width:40px'>
	<li v-for='(item,index) in user' v-html="item.username" :class="{odd:index%2}"></li>
</ul>

v-on:事件绑定

<button type="button" v-on:click = "num += 1">点击增加1</button>

缩写:

<button type="button" @click = "num += 1">点击增加1</button>

在监听原生 DOM 事件时,方法以事件为唯一的参数:

<button v-on:click="doThis"></button>
// 在 `methods` 对象中定义方法
  methods: {
    doThis: function (event) {
      // `this` 在方法里指当前 Vue 实例
      alert('Hello ' + this.name + '!')
      // `event` 是原生 DOM 事件
      alert(event.target.tagName)
    }
  }

Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

<!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
<input v-on:keyup.13="submit">

全部的按键别名:

enter
tab
delete (捕获 “删除” 和 “退格” 键)
esc
space
up
down
left
right

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

对于不会触发页面渲染的方法,可以使用vue.set(要改变的数值,要改变的项,要改变的值);

Vue.set(this.user,2,{
    username:'小红',
    pwd:'123'
})

v-bind:动态的绑定标签一个或多个属性

缩写(:)

<a v-bind:href="link" :title='biadu'>go to baidu</a>

v-module:双向绑定,一般用于表单

 

posted @ 2018-07-13 09:56  小伍w  阅读(180)  评论(0编辑  收藏  举报