Vue中使用query传参和params传参的区别
- params取值需要用
this.$route.params
来取值,query需要用this.$route.query
- params只能通过name来引入路由,query可以用path和name引入
- params参数不会在url中显示,会更加安全,query参数会在url中显示
- params传值页面刷新后会清空,所以必须配置路由时要先设置params接收的参数,query因为在url中记录着,刷新后参数值还在
- params是路由的一部分,所以配置路由时如果路由设置了params传参而跳转的时候没有传params会导致跳转失败,而query是路由拼接的参数,没给参数也没关系
使用v-for时为什么要绑定key,key值为什么要设定唯一值
-
key值是什么
key值是给v-for遍历的数据节点添加唯一的标识
-
key值为什么要设定唯一值
由于key是设置给节点的唯一标识,如果传的值有重复,则会发生有不同的节点设定了同一标识
-
使用v-for时为什么要绑定key
因为vue是动态改变页面结构的,使用v-for更新已经渲染的列表时,采取的是惰性渲染,即’DOM结构就地复用策略’,当列表数据修改的时候,根据key值准确判断哪一条数据进行了修改,进行了什么修改,判断是否做创建和删除的操作再去渲染.
如果不添加key值,数据失去了唯一标识,数据变动时,需要把所有的节点进行判断是否有变动,再去做相应的处理,然后重新渲染数据.
简而言之:绑定key值为了更好地辨识各个组件,更高效地更新虚拟DOM,提高代码效率
-
为什么不建议用索引值index设置key
因为索引值不一定是数据的唯一值,如果数据的添加和删除的位置是从最后开始,索引值不会改变,但是如果数据变化是在数组开头或中间,变化位置后的所有数据索引值也会变化,则绑定的key值也随着变化