vue this.$router.push 页面传值问题
在修改一个别人的bug的时候发现一个问题, 记录一下, vue前端页面在刷新页面后只读页面可以编辑了
在前一个传值页面他的写法是
this.$router.push({ name:'xxx', query:{ isEdit:false } });
在接收的时候写的是
this.isEdit = this.$route.query.isEdit ? true : false;
this.$router.push在传值的时候有两种方式,分别为如下,
1. 其中 name和params搭配, 参数在url上不显示, 值的类型是object, 支持json, 但是页面刷新后值就没有了
2. path和query搭配, 参数在url上显示, 值的类型都是string, 不能使用bool等类型, 页面刷新后还有
3. path不能和param搭配使用, 使用后参数无法读取
4. name和query也最好不要使用, 使用后参数可以获取到, 但是第一次为object类型, 刷新后变为string
上诉bug就是这种情况, 页面刷新后false由bool类型变为了string, 永远为true
//方式1 this.$router.push({ name:'xxx', params:{ isEdit:false } }); //取值 this.$route.params.isEdit //方式2 this.$router.push({ path:'xxx', query:{ isEdit:false } }); //取值 this.$route.query.isEdit