渐进式JavaScript框架
声明式渲染-->组件系统-->客户端路由-->集中式状态管理-->项目构建
将数据填充到HTML标签中
插值表达式支持基本的计算操作
概述编译过程的概念( Vue语法→原生语法)
指令的本质就是自定义属性
指令的格式:以v-开始(比如: v-cloak )
解决插值表达式存在的问题:“闪动”
原理:先隐藏,替换好值之后再显示最终的值
v-cloak指令的用法
<head> <style type="text/css"> /* 1、提供样式 */ [v-cloak]{ display: none; } </style> </head> <body> <div id="app"> <div v-cloak>{{msg}}</div> </div> <script type=" text/javascript" src="js/vue.js"></script> <script type="text/javascript"> // 2、在插值表达式所在的标签中添加v-cloak指令 var vm = new Vue({ el:' #app', data: { msg: ' Hello Vue' }); </script> </body>
<span v-text=" msg" ></span> <!--和下面的一样--> <span>{ {msg} }</span>
v-on指令用法
<input type='button' v-on:click='num++' />
v-on简写形式
<input type='button' @click='num++' />
调用方式
直接绑定函数名称
<input type='button' v-on:click='say' />
调用函数
<input type='button' v-on:click='say()' />
事件修饰符
阻止冒泡
<a v-on:click.stop="handle">跳转</a>
阻止默认行为
<a v-on:click.prevent="handle">跳转</a>
按键修饰符
回车键
<input v-on:keyup.enter='submit' >
捕获 删除键和
退格键
<input v-on:keyup.delete='handle'>
Vue只为最常见的键提供了别名
全局config.keyCodes对象
Vue.config.keyCode = 65 // Vue.config.keyCode.按键名称 = 值 Vue.config.keyCode.a = 65
自定义按键修饰符的名称是自定义的,但是对应值必须是keyCode值
什么是双向数据绑定?
单向绑定
切入,单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新当用户填写表单时,View的状态就被更新了,如果此时可以自动更新Model的状态,那就相当于我们把Model和View做了双向绑定,关系图如下
低层实现原理
<input v-blind:value="msg" v-on:input="msg=$event.target.value">
用法
<input type='text' v-model='uname' /> /* uname这个值也是位于data中的 */
<a v-blind:href='url'>跳转</a>
<a :href='url'>跳转</a>
对象语法
<div v-bind:class="{active:isActive }"></div>
数组语法
<div v-bind:class="[activeClass, errorClass]"></div>
<div v-bind:style="{ color: activeColor, fontsize: fontSize }"></div>
<div v-bind: style=" [baseStyles NS overridingStyles]"></div>
条件渲染分组
一般来说,
v-if
有更高的切换开销,而v-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-show
较好;如果在运行时条件很少改变,则使用v-if
较好。
把映射
为一组元素
<li v-for='item in list'>{{item}}</li>
<li v-for='(item,index) in list'>{{item}} + --- + {{index}}</li>
在v-for中使用对象
一个参数情况下,参数是对象中的值
<li v-for="value in myObject">{{value}}</li>
两个参数情况下,参数分别是值和键
<li v-for="(value, name) in myObject"> {{ name }}: {{ value }} </li>
三个参数情况下,参数分别是值、键和索引
<li v-for="(value, name, index) in myObject"> {{ index }}. {{ name }}: {{ value }} </li>
v-for 中也可以接收整数,重复对应次数(从1开始到n)
也可以在 中使用 v-for
v-if 与 v-for 结合使用,v-if 的优先级别更高 key 作用 :帮助Vue区分不同的元素,从而提高性能
<1i :key='item.id' v-for=' (item, index) in list'>{ {item}} + '---' {{index} }</1i>