Vue.js是目前比较火的轻量级的前端框架之一。是一套构建用户界面的渐进式框架。html
Vue 的目标是经过尽量简单的 API 实现响应的数据绑定和组合的视图组件。前端
var newVue=new Vue({ el:'#demo', data:{ name:'curry', age:18, }, create:function(){ console.log("hello,"+this.name); }, methods:{ showMsg(){ console.log("hello,"+this.name); }, }, })
Vue包含挂在元素(el),数据(data),模板(template),方法(methods)与生命周期钩子(created等)等选项。不一样的实例选项拥有不一样的功能,如:数组
v-text: 用于更新绑定元素中的内容前端框架
<div v-text="text"></div> //二者同样 <div>{{text}}</div>
v-html: 用于更新绑定元素中的html内容app
<div v-html="html"></div>
通常状况下不会再页面使用html插入,以防止xss攻击。框架
v-show:根据表达式之真假值,切换元素的display CSS 属性dom
<div v-show=true>显示我</div>
根据表达式的值的真假条件渲染元素xss
//根据随机值来进行显示不一样的内容 <div v-if="Math.random() > 0.5"> Sorry </div> <div v-else> Not sorry </div>
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if以后。性能
v-for是以item in items的形式的特殊语法,经常使用来绑定数据到数组来渲染一个列表优化
<div id="app"> <ol> <li v-for="site in sites"> {{ site.name }} </li> </ol> </div> <script> new Vue({ el: '#app', data: { sites: [ { name: '张三' }, { name: '李四' }, { name: '王五' } ] } }) </script>
也能够将第二个参数做为键名
<li v-for="(value, key) in object"> {{ key }} : {{ value }} </li>
第三个参数为索引
<li v-for="(value, key, index) in object"> {{ index }}. {{ key }} : {{ value }} </li>
v-on:绑定事件监听器
<button v-on:click="doThis"></button> <!-- 缩写 --> <button @click="doThis"></button>
v-bind:动态地绑定一个或多个特性,或一个组件 prop 到表达式。
<!-- 绑定一个属性 -->  <!-- 缩写 -->  <!-- class 绑定 --> <div :class="{ red: isRed }"></div> <div :class="[classA, classB]"></div> <div :class="[classA, { classB: isB, classC: isC }]"> <!-- style 绑定 --> <div :style="{ fontSize: size + 'px' }"></div> <div :style="[styleObjectA, styleObjectB]"></div> <!-- 绑定一个有属性的对象 --> <div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>
v-model:随表单控件类型不一样而不一样。只有
、
、components可使用。
用于表单控件绑定。
<input v-model="remark"></input>
修饰符:
<!-- 在 "change" 而不是 "input" 事件中更新 --> <input v-model.lazy="msg" >
<input v-model.number="age" type="number">
<input v-model.trim="msg">
v-once:只渲染元素和组件一次。随后的从新渲染,元素/组件及其全部的子节点将被视为静态内容并跳过。这能够用于优化更新性能。
<span v-once>This will never change: {{msg}}</span> <!-- 有子元素 --> <div v-once> <h1>comment</h1> <p>{{msg}}</p> </div>