$router和$route的区别,v-if和 v-for,v-show

$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适合不频繁的切换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值