模板字符串:
js语法
允许嵌入表达式的字符串字面量
反引号 ( ) 来代替普通字符串中的用双引号和单引号
形式:name: ${name}
Mustache:
前端模板引擎,用于html {{ }}
vue:
常用指令:
v-if:组件销毁并重建
v-show: 切换display属性
v-for:
key是必须的
不要与v-if同时存在于一个元素上
当 Vue 正在更新使用 v-for 渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们在每个索引位置正确渲染。
这个默认的模式是高效的,但是只适用于不依赖子组件状态或临时 DOM 状态 (例如:表单输入值) 的列表渲染输出。
v-bind:
:src
v-on:
@click
$event: DOM 事件
v-model:
实现表单输入与应用状态的双向绑定,
可通过v-bind: 和 v-on:实现
- text 和 textarea 元素使用 `value` property 和 `input` 事件;
- checkbox 和 radio 使用 `checked` property 和 `change` 事件;
- select 字段将 `value` 作为 prop 并将 `change` 作为事件。
v-pre:
跳过这个元素和它的子元素的编译过程。
跳过大量没有指令的节点会加快编译。
v-once:
只渲染元素和组件一次。
随后的重新渲染,元素/组件及其子节点会当作静态内容并跳过。
用于性能优化,但是慎用。以防他人更改代码时注意不到改指令。
Vue几种常用的指令:
1、v-if: 组件被销毁并重建。
2、v-show:切换元素的 display CSS 属性。
3、v-for:vue 2.0以上必须需配合 key值 使用。且不要与v-if同时存在于一个元素上
4、v-bind:
5、v-on:
6、v-model:实现表单输入和应用状态之间的双向绑定。可通过v-bind:value 和 v-on:input实现
7、v-pre:跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。
8、v-once:只渲染元素和组件一次。随后的重新渲染,元素/组件及其子节点会当作静态内容并跳过。用于性能优化,但是慎用。以防他人更改代码时注意不到改指令。
Vue常用的修饰符:
v-on 指令常用修饰符:
1、.stop -调用 event.stopPropagation(),禁止事件冒泡。
2、.prevent -调用 event.preventDefault(),阻止事件默认行为。
3、.capture -添加事件侦听器时使用 capture 模式。
4、.self -只当事件是从侦听器绑定的元素本身触发时才触发回调。
5、.{keyCode | keyAlias} -只当事件是从特定键触发时才触发回调。
6、.native -监听组件根元素的原生事件。
7、.once -只触发一次回调。
8、.left - (2.2.0)只当点击鼠标左键时触发。
9、.right - (2.2.0)只当点击鼠标右键时触发。
10、.middle - (2.2.0)只当点击鼠标中键时触发。
11、.passive - (2.3.0)以 { passive: true } 模式添加侦听器, 执行默认行为
(注意!) 如果是在自己封装的组件或者是使用一些第三方的UI库时,会发现并不起效果,这时就需要用其他的了
.native修饰符了,如:
//使用示例:
<el-input
v-model="inputName"
placeholder="搜索你的文件"
@keyup.enter.native="searchFile(params)"
>
v-bind指令常用修饰符:
1、.prop -被用于绑定 DOM 属性 (property)。(差别在哪里?)
2、.camel - (2.1.0+)将 kebab-case 特性名转换为 camelCase. (从 2.1.0 开始支持)
3、.sync (2.3.0+)语法糖,会扩展成一个更新父组件绑定值的 v-on 侦听器。
v-model指令常用修饰符:
1、.lazy -取代 input 监听 change 事件
2、.number -输入字符串转为数字
3、.trim -输入首尾空格过滤
而且v-on可以监听多个方法,例如:
<input type="text" :value="name" @input="onInput" @focus="onFocus" @blur="onBlur" />
但是同一种事件类型的方法,只会响应第一个,例如:
<a href="javascript:;" @click="methodsOne" @click="methodsTwo">
只会响应methodsOne方法