vue中的nextTick?
nextTick(回调函数) 将回调函数延迟到下次dom更新循环结束之后执行
nexttick的应用场景:(由于Vue中的dom更新是异步的;)
1.在vue的生命周期created中进行dom操作,一定要放在nexttick函数中执行;
2.在数据变化后要执行某个操作,而这个操作需要随着数据改变而改变dom结构时;
vue中的keep-alive?
是vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染dom
vue中的mixin?
Mixin是类,其他类可以访问mixin类的方法而不必成为其子类;
本质是一个js对象,包含组件中的任意功能选项,如data components methods created
computed等
应用场景?
有两个或者多个组件的逻辑相同时,写一套代码,多组适用
vue中的slot?
Slot插槽 占位符
具名插槽 多个插槽区分名字
作用域插槽 在父级可以访问子组件中的数据
独占默认插槽的缩写语法
vue中常用的指令有哪些?
指令(Directives)是带有 *v- 前缀 *的特殊属性。指令的职责就是当其表达式的值
改变时相应地将某些行为应用到 DOM 上。
简而言之,可以通过指令,来处理复杂的一些渲染。
数据绑定指令:
v-text v-html v-model
属性指令
v-bind
条件指令
v-if v-show
循环指令
v-for
事件绑定指令
v-on
vue的v-for指令中key的作用:
key是给每个节点提供的唯一id,在同级节点的diff过程中,可以根据key快速对比是否为相同节点,并且利用key的唯一
性,可以生成map来更快获取相应节点;另外,指定key后,就不再采用“就地复用”策略,可以保证渲染准确性。
原理:
1.vue实现了一套虚拟dom,使我们可以不直接操作dom,只操作数据就可以重新渲染页面,隐藏在背后的原理就是高效的diff算法;
2.当页面数据发生变化时,diff算法只会比较同一层级的节点;
3.如果节点类型不同,直接干掉前面的节点,再创建并插入新的节点,不会再比较这个节点后面的子节点;
如果节点类型相同,则会重新设置该节点属性,从而实现节点更新;
4.使用key给每个节点做一个唯一标识,diff算法就可以判断此节点正确失败,“就地更新”找到正确位置插入新节点;
Vue中的常用修饰符?
修饰符用于限定类型以及类型成员的声明
1.表单修饰符
v-model.lazy
v-model.trim
v-model.number
2.事件修饰符
.stop 阻止冒泡 e.stopPropagation
.prevent 阻止默认事件 e.preventDefault
.self 只在e.target==e.currentTarget时触发
.once 事件只能触发一次
.capture
.passive 等同于.lazy修饰符
.native 绑定原生事件
3.鼠标按钮修饰符
@click.left
@click.right
@click.middle
4.键盘修饰符
@keyup.enter @keydown.tab .delete
5.v-bind修饰符
.async
.prop
.camel
Vue中的过滤器了解吗?过滤器的应用场景有哪些?
使用符号 原始数据 | 过滤器名字
多个过滤器可以串用
过滤器实际上不改变原始数据,只是对数据进行加工处理后返回的数据进行调用,可以看作是一个函数;
ps:vue3已废弃filter