1.v-if 和v-show 有什么不同
v-if 通过DOM 节点的添加和删除来控制节点的显示和隐藏
v-show 通过css display 样式属性来控制节点的显示隐藏
如果需要频繁操作DOM的显隐,则使用v-show
2.v-if 和v-for 优先级
在vue中,不建议v-if 和 v-for 同时在一个元素上使用,会造成性能浪费
vue2中,v-for 比 v-if 优先级高
vue3中,v-if 比 v-for 优先级高
3.vue2 和 vue3 有什么区别
性能:vue3比vue2更快
语法:vue3语法更简单
TypeScript 支持:vue3支持TypeScript
Vue3支持多个根节点,vue2只能一个根节点
4.vue生命周期
vue3
onBeforeMount 挂载之前
onMount 挂载之后
onBeforeUpdate 数据更新之前
onUpdate 数据更新之后
onBeforeUNmount 组件销毁之前
onUnmounted 销毁之后
5.MVVM 是什么?
MVVM是Model-View-ViewMode的简写,M:model 应用的数据模型,V:view 应用的UI界面,VM:viewmodel 视图模型,连接M与V,使数据双向绑定。
6.组件之间传值(vue3)
props/emit
父组件通过标签 :data="data" 方式定义传值
子组件通过 defineProps 接收
父组件通过标签 @function="function" 方式传递函数
子组件通过defineEmits 接收
依赖注入(provide/inject)
父组件:provide('name',data)
子组件:inject('name') 可垮子组件传递
ref
ref 这个属性用在子组件上,指向子组件的实例,可以通过实例来访问组件的数据和方法
7. keep-alive 的作用
包裹动态组件时,会缓存不活动的组件实例,保存组件状态或避免重新渲染,避免页面返回是页面重新渲染
8.vue中key的用途
1.追踪节点身份
2.高效的更新DOM
3.vue中在使用transition过渡的时候,如果没有设置key做为唯一标识的话,可能会出现过渡动画无效。