Vue 踩坑日志 - 有关路由传参的坑
1.有關路由傳參
vue中當通過params傳過去的參數刷新頁面以后會消失,所以可以用query傳參。但此時又會出現另一個坑,刷新后數據仍在。但這是針對單個的某個變量的。
如果傳入一個對象的話,刷新頁面后會變成[object,object]。
那么這個問題是如何產生的呢?
探究一下,發現
router他是一個鉤子,刷新頁面的時候,鉤子還是初始化狀態,他的值是通過導航變化后,鉤子攔截導航是匹配產生的。
所以說當刷新頁面的時候,路由并沒有發生變化,也就不存在會給變量賦值。所以,此時會出現賦值失敗問題。
(以上為個人理解,如果不對請指正)
問題找出來了,怎么解決呢?
emmm.....
第一種:
首先我們要知道我們在傳的這個對象中的變量是否都是我們需要的,或者這個對象中只包括很少的變量
我們就可以,用傳單個變量的形式,將他們傳過去。(有點廢話,但確實是個好辦法)
第二種:代碼
if(this.$route.query?instanceof?Object){
var?msg?=sessionStorage.setItem('item',Json.Stringify(this.$route.query))
if(msg){
this.item?=?JSON.parse(sessionStorage.getItem('item'))
}
}else{
this.item?=?JSON.parse(sessionStorage.getItem('item'))
}
解釋一下就是 先判斷 它的格式是否為對象,如果是就將他儲存到sessionStorage中,然后data中創建一個新的對象接受即可
JSON.stringify轉載于:https://www.cnblogs.com/-moon/p/11115376.html
總結
以上是生活随笔為你收集整理的Vue 踩坑日志 - 有关路由传参的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于【 centos7】一 || 安装E
- 下一篇: 数组的reduce方法