
No more than code.
PS:使用 keep-alive 的组件,实例化 name 值与路由配置 name 值必须相同,否则 keep-alive 失效
keepalive 可以接收三个属性作为参数进行匹配对应的组件进行缓存,默认 keepalive 包含的组件都缓存
其中 include,exclude 可以为字符,数组,以及正则表达式 max 类型为字符或者数字
<!-- 只缓存组件 name 为 a 或者 b 的组件 -->
<keep-alive include="a,b">
<component :is="currentView"/>
</keep-alive>
<!-- 组件名为 c 的组件不缓存 -->
<keep-alive exclude="c">
<component :is="currentView"/>
</keep-alive>
<!-- 如果同时使用include,exclude,那么exclude优先于include,下面的例子只缓存a组件 -->
<keep-alive include="a,b" exclude="b">
<component :is="currentView"/>
</keep-alive>
<!-- 如果缓存的组件超过了 max 设定的值 5,那么将删除第一个缓存的组件 -->
<keep-alive exclude="c" max="5">
<component :is="currentView"/>
</keep-alive>
动态添加类名
<div class="tab" v-bind:calss="{'active' : active , 'unactive' : !active}"> </div>
vm实例中需要包含data : {active : true} 渲染结果为: <div class="tab active"></div><div v-bind:class="[classA, classB]"></div>
vm实例中需要包含 data : {classA : ‘class-a’,classB : ‘class-b’ }
渲染结果为:<div class="class-a class-b"></div><div v-bind:class="[classA, isB ? classB : '']"></div>
如果 vm.isB = false, 则渲染结果为 <div v-bind:class="class-a"></div>动态添加样式
<div v-bind:style="alertStyle"></div>
<div v-bind:style="{ fontSize : alertStyle.fontSize, color : 'red'}"></div>
<div v-bind:style="[ styleObjectA, styleObjectB]"></div>
数据绑定 => 文本插值:v-once
单次插值,即首次赋值后,再更改 vm 实例属性值不会引起 DOM 变化。
Vue.js 2.0 去除了 1.0 的写法,采用 v-once 代替。以上模板需要改写为 <span v-once='name'></span>
input 参数特性
lazy(在change事件中同步数据) 例:<input v-model="query" lazy />
number(会自动将用户输入转为 Number 类型,如果原值转换结果为 NaN 则返回原值。 )
debounce 设置的最小延时,单位为 ms,即为单位时间内仅执行一次数据更新。 <input v-model="query" debounce="500" />
Vue.js 2.0 中取消了 lazy 和 number 作为参数,用修饰符(modifier)来代替 :
<input v-model.lazy="query" />
.lazy修饰符可以实现单向数据绑定
<input v-model.numer="age" />
去除了debounce,原因是无法监测到输入新数据,但尚未同步到vm 实例属性时这个状态。
新增了 trim 修饰符,去掉输入值首尾空格 : <input v-model.trim="name" />
常用事件修饰符
<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>
<!-- 添加事件侦听器时使用时间捕获模式 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 -->
<div v-on:click.self="doThat">...</div>
<!-- the click event will be triggered at most once -->
<a v-on:click.once="doThis"></a>
常见的按键修饰符
<!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
<input v-on:keyup.13="submit">
<!-- 同上 -->
<input v-on:keyup.enter="submit">
<!-- 缩写语法 -->
<input @keyup.enter="submit">
<!--全部的按键别名:-->
enter / tab / delete (捕获 “删除” 和 “退格” 键) / esc / space
up / down / left / right / ctrl / alt / shift / meta
<!-- 通过全局 config.keyCodes自定义按键修饰符别名,记住要在new新实例之前注册 -->
<!-- 可以使用 v-on:keyup.f1 -->
Vue.config.keyCodes.f1 = 112
npm install jquery --save
webpack 配置:webpack.base.conf.js 新增代码块
var webpack = require('webpack')
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
jquery: "jquery",
"window.jQuery": "jquery"
})
],
vue-in-github
Vue2 技术栈归纳与精粹
Vue-plugin(page/dialogs/tablegrid/uploader/ztree/gallery/region)
Vue技术内幕
前端路由简介以及vue-router实现原理
从0到1手写一个vuejs
Vue UI库
vuejsdevelopers
Awesome Vue
revue
前端日刊
力荐 35 个最好用的 Vue 开源库!