vue 小问题
v-if 和 v-show 区别
1,v-if是判断是否要渲染,若为false的时候,标签都不会出现,多用于变化较少或者直接是没有变化功能的显示区域
例如:用户信息的vip标志,头像这些
2,v-show是判断是否需要显示,这个时候标签内容是已经存在了,只是css上dispalck设置为none隐藏了显示,多用于开关等变化比较频繁的显示区域
例如:状态切换时显示不同的图标
$route
和$router
的区别
$route指的是路由信息对象,是当前的路由信息,包含path,oaranse,hash,name等等信息
$router指的是路由实例,包含路由的跳转方法钩子函数等等
指令v-el和v-ref的作用是什么?
1,v-el能够获取到DOM对象
<h2 v-el:myh2>标题</h2> //可以通过this.$els.myh2获取到对应的dom元素 <h3 v-ref:myh3>标题</h3> //可以通过this.$els.myh3获取到对应的组件元素
NextTick
1.定义:将回调函数延迟在下一次dom更新数据后调用
2.用法,在created中操作dom元素的时候需要使用NextTick,因为craeted在执行时还没有挂载,没办法操作dom元素,NextTick则是延迟到挂载后
在更新完数据后,立即去获取对应数据的dom元素,因为这个时候还没有完成数据更新,dom上对应的信息还是旧的,因此需要NextTick来延迟回调
Vue 组件 data 为什么必须是函数
每个组件都是vue实例
data是一个引用类型,组件共享data属性,若不是函数的话,一个组件改变data会影响到其他组件
watch与computed的区别
computed
1.支持缓存,在依赖数据没有发生变化时,调用计算属性是默认走缓存的
2.不支持异步
3.拥有set方法以及get方法
4.可以依赖一个或者多个数据
watch
1,不支持缓存,没有缓存通道
2,支持异步
3,只能依赖一个属性,但可以操作多个属性
4,拥有参数 immediate/是否立即触发 deep/是否深度监听
vue修饰符
stop
:阻止事件的冒泡prevent
:阻止事件的默认行为once
:只触发一次self
:只触发自己的事件行为时,才会执行