$route和$router的区别
route是一个跳转的路由对象,是当前路由信息,它是一个局部的对象,可以获取到当前路由地址参数等等,比如:name、path、params、query等
router是全局路由(VueRouter)实例对象,可以通过router进行路由的跳转、后退等,平常会用$router.push('')来进行路由的一个切换,它本质是向history栈中添加了一个路由,但在我们看就是路由的一个切换,也还会用$router.back()返回上一级的路由
v-if和v-for为什么避免结合使用?
在vue2中,v-for的优先级高于v-if,先会进行v-for的循环,再根据v-if进行渲染,所以会造成性能上的浪费。
解决:
1.可以在外层嵌套一个template,在这上面进行v-if的判断,然后在内部进行v-for循环,这样就会先执行v-if,再进行循环
2.也可以通过计算属性computed提前把那些不需要显示的项给过滤出来
v-if和v-show的异同
相同点:都是用来控制显示和隐藏的
不同点:1、v-show是通过控制样式的display:none来实现显示和隐藏的
v-if是通过创建和销毁来实现的
2、适用场景:v-show适合频繁的切换,v-if适合不频繁的切换