真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Vue如何使用History記錄上一頁面的數(shù)據(jù)方法

小編給大家分享一下Vue如何使用History記錄上一頁面的數(shù)據(jù)方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

黑河網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,黑河網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為黑河成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的黑河做網(wǎng)站的公司定做!

前言

本文主要介紹的是Vue利用History記錄上一頁面數(shù)據(jù)的相關(guān)內(nèi)容,vue使用history后,能夠使得url更加漂亮,也就是不再有‘#'的問題,下面話不多說了,來一起看看詳細的介紹吧

需求

從列表頁的第二頁進入詳情頁,返回時列表頁仍然顯示在第二頁;

從列表頁的第二頁進入詳情頁,返回時列表頁的篩選條件仍然存在。

技術(shù)選擇

使用vue-router組件,通過this.$router.push({path: path, query: query});方式,將頁碼和選擇條件作為參數(shù)存儲在url中,這種方式在上面的UI設(shè)計中是可行的,但是當列表頁中包含tab組件時(分頁組件是公用的),會因為push的因素(因為push會打開新頁面)導致一些問題(PS:也可能是本人技術(shù)能力的原因),未實現(xiàn)。
使用History API(HTML5開始支持),通過history.replaceState方式,將頁碼作為參數(shù)存儲在url中,將選擇條件存儲在history中(尚不清楚數(shù)據(jù)具體是存儲在哪里);通過location.hash方式獲取頁碼;通過history.state方式獲取存儲的選擇條件。
具體實現(xiàn)--技術(shù)選擇2

開關(guān)

為分頁組件添加一個開關(guān)(openroute),因為需要灰度上線,萬一有問題,要調(diào)整的頁面也只有一個。代碼如下:

``

分頁組件中存儲頁碼和選擇條件&獲取頁碼

``

列表頁面獲取選擇條件

目前可能是因為框架設(shè)計的問題,沒法在請求數(shù)據(jù)之前通過Object.assign方式為替換初始變量,所以先這樣處理(笨方法,各位大佬有解決辦法麻煩指導下,謝謝):

``

已解決,初始變量不需要動,可以通過以下方式實現(xiàn):

`if` `(history.state) {`
`Object.assign(``this``.form, history.state)`
`if` `(``this``.form.key) {`
`delete` `this``.form.key`
`}`
`}`
`},`

這里記錄下:之前以為created方法是在分頁組件的watch監(jiān)聽之后執(zhí)行的,后來發(fā)現(xiàn)被誤導了(因為之前是通過Object.assign(true, this.form, history.state)方式實現(xiàn)數(shù)據(jù)賦值的,但是并沒有成功)。下面做個小總結(jié):

Object.assign(true, a, b);”和“Object.assign(a, b);”有什么區(qū)別?

結(jié)論:前者:改a不影響b;后者:改a影響b

分析(這篇文章有源碼分析( 求解答:WebStorm中如何關(guān)聯(lián)源碼?),很棒):

FAQ

需要使用history.replaceState方式是因為:它不會將更改后的url壓到history棧中,所以不會增加回退和前進的操作步數(shù);
使用history.replaceState方式,可存儲的state大小不能操作640k

以上是“Vue如何使用History記錄上一頁面的數(shù)據(jù)方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章標題:Vue如何使用History記錄上一頁面的數(shù)據(jù)方法
轉(zhuǎn)載來于:http://weahome.cn/article/jhcops.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部